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 LTI_BBB_IMAGE_READER_H 00014 #define LTI_BBB_IMAGE_READER_H 00015 00016 // lt_lib_mrsid_core 00017 #include "lti_rawImageReader.h" 00018 00019 // system 00020 #include <stdio.h> // for FILE* 00021 00022 LT_BEGIN_NAMESPACE(LizardTech) 00023 00024 class LTIBBBHeaderReader; 00025 00033 class LTIBBBImageReader : public LTIRawImageReader 00034 { 00035 LTI_REFERENCE_COUNTED_BOILERPLATE(LTIBBBImageReader); 00036 public: 00045 LT_STATUS initialize(const LTFileSpec& fileSpec, bool useWorldFile = true); 00046 00055 LT_STATUS initialize(const char* file, bool useWorldFile = true); 00056 }; 00057 00058 #ifndef DOXYGEN_EXCLUDE 00059 00060 class LTIBBBHeaderReader 00061 { 00062 LT_DISALLOW_COPY_CONSTRUCTOR(LTIBBBHeaderReader); 00063 00064 public: 00065 LTIBBBHeaderReader(const LTFileSpec&); 00066 ~LTIBBBHeaderReader(); 00067 LT_STATUS read(); 00068 00069 public: 00070 int m_width; 00071 int m_height; 00072 LTIDataType m_dataType; 00073 LTIColorSpace m_colorSpace; 00074 int m_numBands; 00075 LTILayout m_layout; 00076 char* m_byteOrder; 00077 int m_numBits; 00078 LTIEndian m_endian; 00079 00080 double m_window; 00081 double m_level; 00082 double m_drMin; 00083 double m_drMax; 00084 bool m_hasWindow; 00085 bool m_hasLevel; 00086 bool m_hasDRMin; 00087 bool m_hasDRMax; 00088 00089 int m_bandgapbytes; 00090 int m_bandrowbytes; 00091 int m_totalrowbytes; 00092 int m_skipbytes; 00093 00094 bool m_hasUlxmap; 00095 bool m_hasUlymap; 00096 bool m_hasXllcorner; 00097 bool m_hasYllcorner; 00098 bool m_hasXllcenter; 00099 bool m_hasYllcenter; 00100 bool m_hasXdim; 00101 bool m_hasYdim; 00102 bool m_hasCellsize; 00103 double m_ulxmap; 00104 double m_ulymap; 00105 double m_xllcorner; 00106 double m_yllcorner; 00107 double m_xllcenter; 00108 double m_yllcenter; 00109 double m_xdim; 00110 double m_ydim; 00111 double m_cellsize; 00112 00113 // Imagine header data 00114 bool m_bFromImagine; //indicates whether to display Imagine Metadata 00115 char* m_projname; 00116 char* m_sphereName; 00117 char* m_units; 00118 int m_proZone; 00119 double* m_projParams; 00120 double m_sphereMajor; 00121 double m_sphereMinor; 00122 double m_sphereEccentricitySquared; 00123 double m_sphereRadius; 00124 00125 char* m_wkt; 00126 double* m_nodata; 00127 int m_nodataSize; 00128 00129 private: 00130 LT_STATUS init(); 00131 LT_STATUS finish(); 00132 LT_STATUS readLines(); 00133 LT_STATUS readLine(int& offset_last, bool& done); 00134 LT_STATUS nextLine(); 00135 LT_STATUS readInt(int&); 00136 LT_STATUS readDouble(double&); 00137 LT_STATUS readString(char*); 00138 00139 const LTFileSpec& m_fileSpec; 00140 FILE* m_fp; 00141 }; 00142 #endif 00143 00144 LT_END_NAMESPACE(LizardTech) 00145 00146 #endif // LTI_BBB_IMAGE_READER_H