MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
ImageReader.h
Go to the documentation of this file.
1 /* //////////////////////////////////////////////////////////////////////////
2 // //
3 // This code is Copyright (c) 2010 LizardTech, Inc, 1008 Western Avenue, //
4 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
5 // prohibited. Access to and use of this code is permitted only under //
6 // license from LizardTech, Inc. Portions of the code are protected by //
7 // US and foreign patents and other filings. All Rights Reserved. //
8 // //
10 /* PUBLIC */
11 
12 #ifndef ImageReader_H
13 #define ImageReader_H
14 
15 // lt_lib_base
16 #include "lt_base.h"
17 
18 // lt_lib_mrsid_core
19 #include "lti_geoImageReader.h"
20 
21 // local
22 #include "nitf_types.h"
23 
25 class LTFileSpec;
26 class LTIOStreamInf;
27 class LTReusableBuffer;
28 class NITFReaderManager;
29 
30 namespace Nitf {
31 class FileHeader;
32 class ImageSegment;
33 class ImageSegmentMetadata;
34 class SecurityMetadata;
35 
36 
47 {
48  LT_DISALLOW_COPY_CONSTRUCTOR(ImageReader);
49 public:
53  const char* getIID1() const;
54 
55  lt_int64 getPhysicalFileSize() const;
56 
57  // not for public use
58  NITFReaderManager& getManager() const;
59 
63  Format getFormat() const;
64 
68  Layout getLayout() const;
69 
73  bool isBlocked() const;
74 
78  bool isMasked() const;
79 
83  int getSegmentNumber() const;
84 
89 
94 
95  // inherited
96  LT_STATUS getDimsAtMag(double mag,
97  lt_uint32& width,
98  lt_uint32& height) const = 0;
99 
100 protected:
101  ~ImageReader(void);
102  ImageReader(bool supportBandSelection);
103 
104  const char *getSourceName(void) const;
105 
106  LT_STATUS init(LTIOStreamInf *stream,
107  NITFReaderManager *manager,
108  const ImageSegment *imageSegment,
109  bool useWorldFile);
110 
112 
113  // blocked image support
114  LTIScene computeBlockedScene(const LTIScene& scene) const;
115  LT_STATUS copyIntoUserBuffer(const LTIScene& dstScene,
116  LTISceneBuffer& dstBuffer) const;
117  bool activeSceneContains(const LTIScene& scene) const;
119  lt_uint8* buf,
120  lt_uint32 blockRow,
121  lt_uint32 blockCol,
122  lt_uint32 blockBand) const;
124  lt_uint8* buf,
125  lt_uint32 blockRow,
126  lt_uint32 blockCol) const;
128  lt_uint8* buf,
129  lt_uint32 blockRow,
130  lt_uint32 blockCol) const;
132  lt_uint8* buf,
133  lt_uint32 blockRow,
134  lt_uint32 blockCol) const;
135 
136 
137 
139  NITFReaderManager *m_manager;
140 
143 
144  LTReusableBuffer *m_reusableBuffer;
147 };
148 
149 
150 }
152 
153 #endif // ImageReader_H

LizardTech