MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lti_imageReader.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 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_IMAGE_READER_H
14 #define LTI_IMAGE_READER_H
15 
16 // lt_lib_mrsid_core
17 #include "lti_imageStage.h"
19 
20 
22 
23 
30 #ifdef SWIG
31 class LTIImageReader : public LTIImageStage
32 #else
34  <LTIOverridePixelProps
35  <LTIOverrideBackgroundPixel
36  <LTIOverrideGeoCoord
37  <LTIOverrideMagnification
38  <LTIOverrideIsSelective
39  <LTIOverrideStripHeight
40  <LTIOverrideDelegates
41  <LTIOverridePixelLookupTables
42  <LTIOverrideMetadata
43  <LTIImageStage> > > > > > > > > >
44 #endif
45 {
46  LT_DISALLOW_COPY_CONSTRUCTOR(LTIImageReader);
47 public:
48  // LTIImage
49  LT_STATUS getDimsAtMag(double mag,
50  lt_uint32& width,
51  lt_uint32& height) const;
52 
53  lt_uint32 getModifications(const LTIScene &scene) const;
54  LT_STATUS getMetadataBlob(const char *type, LTIOStreamInf *&stream) const;
55 
56 
57  // LTIImageStage
58  LTIMaskSource *getMask() const;
59  bool getPipelineInfo(LTIPipelineInfo info) const;
60 
61  lt_int64 getEncodingCost(const LTIScene& scene) const;
62  bool getReaderScene(const LTIScene &decodeScene,
63  LTIScene &readerScene) const;
64 
65  // override too support ImageReaders that don't support band selection
66  LT_STATUS readBegin(const LTIPixel &pixelProps, const LTIScene &fullScene);
67  LT_STATUS readStrip(LTISceneBuffer &buffer, const LTIScene &stripScene);
68  LT_STATUS readEnd(void);
69 
70 protected:
71  LTIImageReader(bool supportBandSelection);
72 
73  LT_STATUS init(const LTIImage *image = NULL);
74 
75 
77  LTIPixel &pixelProps,
78  bool updatePixelProps,
79  bool updateGeoCoord);
80  virtual const char *getSourceName(void) const = 0;
81 
82 protected:
84 };
85 
86 
88 
89 
90 #endif // LTI_IMAGE_READER_H
LTIMaskSource * getMask() const
LT_STATUS readBegin(const LTIPixel &pixelProps, const LTIScene &fullScene)
start strip-based read
virtual const char * getSourceName(void) const =0
bool getPipelineInfo(LTIPipelineInfo info) const
representation of a scene
Definition: lti_scene.h:64
LT_STATUS getMetadataBlob(const char *type, LTIOStreamInf *&stream) const
extract the metadata associated with the image of the given type
bool getReaderScene(const LTIScene &decodeScene, LTIScene &readerScene) const
get the underlying scene to be used
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39
LT_STATUS readStrip(LTISceneBuffer &buffer, const LTIScene &stripScene)
read a strip from the image
LTIPipelineInfo
Definition: lti_types.h:228
LT_STATUS getDimsAtMag(double mag, lt_uint32 &width, lt_uint32 &height) const
get image width and height at given magnification
#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
lt_int64 getEncodingCost(const LTIScene &scene) const
get the cost to encode this scene
LT_STATUS readEnd(void)
finish strip-based read
class for storing metadata associated with an image
class to hold data passed between image stages
abstract class for decoding from an image
abstract class representing an image
Definition: lti_image.h:32
LT_STATUS loadMetadataIntoObjects(const LTIMetadataDatabase &fileMetadata, LTIPixel &pixelProps, bool updatePixelProps, bool updateGeoCoord)
basic properties of a pixel
Definition: lti_pixel.h:36
LTIImageReader(bool supportBandSelection)
Abstract definition of a stream.
const bool m_supportBandSelection
lt_uint32 getModifications(const LTIScene &scene) const
get the modification bitfield for this image
#define LT_END_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:85
abstract class for implementing an image reader
LT_STATUS init(const LTIImage *image=NULL)

LizardTech