MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
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"
19 
20 
22 class LTReusableBuffer;
35 #ifdef SWIG
37 #else
39  <LTIOverrideBackgroundPixel
40  <LTIOverrideMetadata
41  <LTIImageFilter> > >
42 #endif
43 {
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 
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:
173  {
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 
192 
193 #endif // LTI_BANDSELECTFILTER_H
BandSelectMap * m_decodeMap
representation of a scene
Definition: lti_scene.h:64
LT_STATUS decodeEnd(void)
finish strip-based read
lt_int64 getEncodingCost(const LTIScene &scene) const
get the cost to encode this scene
virtual lt_uint32 getModifications(const LTIScene &scene) const
get the modification bitfield for this image
static LT_STATUS parseString(const char *inputString, lt_int32 *&bandList, lt_uint16 &numBands)
parse band string
LT_STATUS remapBands(const lt_uint16 srcImageBands[])
BandSelectMap * m_bandSelectMap
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39
LT_STATUS decodeStrip(LTISceneBuffer &stripBuffer, const LTIScene &stripScene)
read a strip from the image
LTIColorSpace
colorspaces
Definition: lti_types.h:38
static void remapPixel(const LTIPixel &srcPixel, const lt_uint16 srcImageBands[], LTIPixel &dstPixel)
LT_STATUS decodeBegin(const LTIPixel &pixelProps, const LTIScene &fullScene)
start strip-based read
LT_STATUS initialize(LTIImageStage *srcImages[], const int srcImageBands[], lt_uint16 numOutputBands, LTIColorSpace colorSpace)
general initializer
#define LT_BEGIN_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:84
unsigned int lt_uint32
unsigned 32-bit integer
Definition: lt_types.h:54
abstract class for implementing an image transform
unsigned short lt_uint16
unsigned 16-bit integer
Definition: lt_types.h:50
class to hold data passed between image stages
static LT_STATUS push(LTIImageStage *&pipeline, const LTIPixel &pixelProps)
abstract class for decoding from an image
LT_STATUS getBandMap(lt_uint16 srcImageBands[]) const
LT_STATUS setStripHeight(lt_uint32 stripHeight)
set the strip height
lt_uint32 getStripHeight() const
get strip height
signed int lt_int32
signed 32-bit integer
Definition: lt_types.h:52
basic properties of a pixel
Definition: lti_pixel.h:36
combine N different bands from M images into one N-banded image
#define LT_END_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:85
#define LTI_REFERENCE_COUNTED_BOILERPLATE(classname)

LizardTech