00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012
00013 #ifndef LTIRAWIMAGEREADER_H
00014 #define LTIRAWIMAGEREADER_H
00015
00016
00017 #include "lti_geoImageReader.h"
00018
00019
00020 LT_BEGIN_NAMESPACE(LizardTech)
00021
00022
00023
00030 class LTIRawImageReader : public LTIGeoImageReader
00031 {
00032 LTI_REFERENCE_COUNTED_BOILERPLATE(LTIRawImageReader);
00033 public:
00047 LT_STATUS initialize(LTIOStreamInf* stream,
00048 const LTIPixel& pixelProps,
00049 lt_uint32 width,
00050 lt_uint32 height,
00051 bool useWorldFile = true);
00052
00066 LT_STATUS initialize(const LTFileSpec& fileSpec,
00067 const LTIPixel& pixelProps,
00068 lt_uint32 width,
00069 lt_uint32 height,
00070 bool useWorldFile = true);
00071
00085 LT_STATUS initialize(const char* file,
00086 const LTIPixel& pixelProps,
00087 lt_uint32 width,
00088 lt_uint32 height,
00089 bool useWorldFile = true);
00090
00091
00099
00114 void setStreamOwnership(bool takeOwnership);
00115
00130 void setRowBytes(lt_uint32 rowBytes);
00131
00143 void setLayout(LTILayout layout);
00144
00159 void setSkipBytes(lt_int64 leadingBytes, lt_int64 trailingBytes = 0);
00160
00170 void setByteOrder(LTIEndian byteOrder);
00171
00174 protected:
00175 LT_STATUS decodeBegin(const LTIPixel &pixelProps,
00176 const LTIScene &fullScene);
00177 LT_STATUS decodeStrip(LTISceneBuffer &stripBuffer,
00178 const LTIScene &stripScene);
00179 LT_STATUS decodeEnd(void);
00180
00181 const char *getSourceName(void) const;
00182
00183 protected:
00184 LTFileSpec* m_fileSpec;
00185
00186 private:
00187 LTIOStreamInf* m_stream;
00188 bool m_ownsStream;
00189 lt_int64 m_fileSize;
00190 lt_uint32 m_rowBytes;
00191 LTILayout m_layout;
00192 lt_int64 m_leadingSkipBytes;
00193 lt_int64 m_trailingSkipBytes;
00194 LTIEndian m_byteOrder;
00195
00196 };
00197
00198
00199 LT_END_NAMESPACE(LizardTech)
00200
00201
00202 #endif // LTIRAWIMAGEREADER_H