MrSID Decode SDK for Raster Reference Manual
9.5.1.4427
Main Page
Namespaces
Classes
Files
Examples
File List
File Members
lti_bandSelectFilter.h
Go to the documentation of this file.
1
/* $Id$ */
2
/* //////////////////////////////////////////////////////////////////////////
3
// //
4
// This code is Copyright (c) 2005 LizardTech, Inc, 1008 Western Avenue, //
5
// Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6
// prohibited. Access to and use of this code is permitted only under //
7
// license from LizardTech, Inc. Portions of the code are protected by //
8
// US and foreign patents and other filings. All Rights Reserved. //
9
// //
11
/* PUBLIC */
12
13
#ifndef LTI_BANDSELECTFILTER_H
14
#define LTI_BANDSELECTFILTER_H
15
16
// lt_lib_mrsid_core
17
#include "
lti_imageFilter.h
"
18
#include "
lti_imageStageOverrides.h
"
19
20
21
LT_BEGIN_NAMESPACE
(LizardTech)
22
class LTReusableBuffer;
35
#ifdef SWIG
36
class
LTIBandSelectFilter
:
public
LTIImageFilter
37
#else
38
class
LTIBandSelectFilter
:
public
LTIOverridePixelProps
39
<LTIOverrideBackgroundPixel
40
<LTIOverrideMetadata
41
<LTIImageFilter> > >
42
#endif
43
{
44
LTI_REFERENCE_COUNTED_BOILERPLATE
(
LTIBandSelectFilter
);
45
public
:
70
LT_STATUS
initialize
(
LTIImageStage
*srcImages[],
71
const
int
srcImageBands[],
72
lt_uint16
numOutputBands,
73
LTIColorSpace
colorSpace);
74
88
LT_STATUS
initialize
(
LTIImageStage
*srcImages[],
89
lt_uint16
numOutputBands,
90
LTIColorSpace
colorSpace);
91
107
LT_STATUS
initialize
(
LTIImageStage
* srcImage,
108
const
lt_uint16
srcImageBands[],
109
lt_uint16
numOutputBands,
110
LTIColorSpace
colorSpace);
111
112
// LTIImageStage
113
lt_uint32
getStripHeight
()
const
;
114
LT_STATUS
setStripHeight
(
lt_uint32
stripHeight);
115
lt_int64
getEncodingCost
(
const
LTIScene
& scene)
const
;
116
145
static
LT_STATUS
parseString
(
const
char
* inputString,
146
lt_int32
*&bandList,
147
lt_uint16
& numBands);
148
149
// LTIImageStage
150
virtual
lt_uint32
getModifications
(
const
LTIScene
&scene)
const
;
151
152
// for LizardTech internal use only
153
// this only works if there is one source image
154
// this will change the drMin, drMax, noData and background pixels
155
LT_STATUS
remapBands
(
const
lt_uint16
srcImageBands[]);
156
LT_STATUS
getBandMap
(
lt_uint16
srcImageBands[])
const
;
157
158
static
LT_STATUS
push
(
LTIImageStage
*&pipeline,
const
LTIPixel
&pixelProps);
159
160
static
void
remapPixel
(
const
LTIPixel
&srcPixel,
161
const
lt_uint16
srcImageBands[],
162
LTIPixel
&dstPixel);
163
struct
BandSelectMap;
164
protected
:
165
LT_STATUS
decodeBegin
(
const
LTIPixel
&pixelProps,
166
const
LTIScene
&fullScene);
167
LT_STATUS
decodeStrip
(
LTISceneBuffer
&stripBuffer,
168
const
LTIScene
&stripScene);
169
LT_STATUS
decodeEnd
(
void
);
170
171
protected
:
172
enum
SourcePixel
173
{
174
NodataPixel
,
175
BackgroundPixel
,
176
DRMinPixel
,
177
DRMaxPixel
178
};
179
void
remapPixel
(
LTIPixel
& pixel,
SourcePixel
name)
const
;
180
181
BandSelectMap *
m_bandSelectMap
;
182
BandSelectMap *
m_decodeMap
;
183
184
private
:
185
LT_STATUS
privateInit(
lt_uint16
numOutputBands,
186
LTIColorSpace
colorSpace,
187
bool
callInit);
188
};
189
190
191
LT_END_NAMESPACE
(LizardTech)
192
193
#endif // LTI_BANDSELECTFILTER_H
LizardTech