MrSID Decode SDK for Raster Reference Manual
9.5.1.4427
|
00001 /* $Id$ */ 00002 /* ////////////////////////////////////////////////////////////////////////// 00003 // // 00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, // 00005 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00006 // prohibited. Access to and use of this code is permitted only under // 00007 // license from LizardTech, Inc. Portions of the code are protected by // 00008 // US and foreign patents and other filings. All Rights Reserved. // 00009 // // 00011 /* PUBLIC */ 00012 00013 #ifndef LTIRAWIMAGEREADER_H 00014 #define LTIRAWIMAGEREADER_H 00015 00016 // lt_lib_mrsid_core 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