MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- 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