MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

lti_bbbImageReader.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_BBB_IMAGE_READER_H
14 #define LTI_BBB_IMAGE_READER_H
15
16 // lt_lib_mrsid_core
17 #include "lti_rawImageReader.h"
18
19 // system
20 #include <stdio.h> // for FILE*
21
22 LT_BEGIN_NAMESPACE(LizardTech)
23
24 class LTIBBBHeaderReader;
25
33 class LTIBBBImageReader : public LTIRawImageReader
34 {
35 LTI_REFERENCE_COUNTED_BOILERPLATE(LTIBBBImageReader);
36 public:
45 LT_STATUS initialize(const LTFileSpec& fileSpec, bool useWorldFile = true);
46
55 LT_STATUS initialize(const char* file, bool useWorldFile = true);
56 };
57
58 #ifndef DOXYGEN_EXCLUDE
59
60 class LTIBBBHeaderReader
61 {
62 LT_DISALLOW_COPY_CONSTRUCTOR(LTIBBBHeaderReader);
63
64 public:
65 LTIBBBHeaderReader(const LTFileSpec&);
66 ~LTIBBBHeaderReader();
67 LT_STATUS read();
68
69 public:
70 int m_width;
71 int m_height;
72 LTIDataType m_dataType;
73 LTIColorSpace m_colorSpace;
74 int m_numBands;
75 LTILayout m_layout;
76 char* m_byteOrder;
77 int m_numBits;
78 LTIEndian m_endian;
79
80 double m_window;
81 double m_level;
82 double m_drMin;
83 double m_drMax;
84 bool m_hasWindow;
85 bool m_hasLevel;
86 bool m_hasDRMin;
87 bool m_hasDRMax;
88
89 int m_bandgapbytes;
90 int m_bandrowbytes;
91 int m_totalrowbytes;
92 int m_skipbytes;
93
94 bool m_hasUlxmap;
95 bool m_hasUlymap;
96 bool m_hasXllcorner;
97 bool m_hasYllcorner;
98 bool m_hasXllcenter;
99 bool m_hasYllcenter;
100 bool m_hasXdim;
101 bool m_hasYdim;
102 bool m_hasCellsize;
103 double m_ulxmap;
104 double m_ulymap;
105 double m_xllcorner;
106 double m_yllcorner;
107 double m_xllcenter;
108 double m_yllcenter;
109 double m_xdim;
110 double m_ydim;
111 double m_cellsize;
112
113 // Imagine header data
114 bool m_bFromImagine; //indicates whether to display Imagine Metadata
115 char* m_projname;
116 char* m_sphereName;
117 char* m_units;
118 int m_proZone;
119 double* m_projParams;
120 double m_sphereMajor;
121 double m_sphereMinor;
122 double m_sphereEccentricitySquared;
123 double m_sphereRadius;
124
125 char* m_wkt;
126 double* m_nodata;
127 int m_nodataSize;
128
129 private:
130 LT_STATUS init();
131 LT_STATUS finish();
132 LT_STATUS readLines();
133 LT_STATUS readLine(int& offset_last, bool& done);
134 LT_STATUS nextLine();
135 LT_STATUS readInt(int&);
136 LT_STATUS readDouble(double&);
137 LT_STATUS readString(char*);
138
139 const LTFileSpec& m_fileSpec;
140 FILE* m_fp;
141 };
142 #endif
143
144 LT_END_NAMESPACE(LizardTech)
145
146 #endif // LTI_BBB_IMAGE_READER_H

LizardTech