00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012
00013 #ifndef J2KIMAGEREADER_H
00014 #define J2KIMAGEREADER_H
00015
00016
00017 #include "lti_imageFilter.h"
00018
00019
00020 #include "j2k_types.h"
00021
00022 #if defined(LT_COMPILER_MS)
00023 #pragma warning(push,4)
00024 #endif
00025
00026
00027 LT_BEGIN_NAMESPACE(LizardTech)
00028
00029 class LTFileSpec;
00030 class LTIOStreamInf;
00031 class Jpeg2000ReaderManager;
00032 class Jpeg2000ReaderSource;
00033 class Jpeg2000ReaderStreamSource;
00034 class JPCReader;
00035
00036
00037
00038
00047 class J2KImageReader : public LTIImageFilter
00048 {
00049 LTI_REFERENCE_COUNTED_BOILERPLATE(J2KImageReader);
00050 public:
00082 LT_STATUS initialize(const LTFileSpec& fileSpec,
00083 bool isPersistent = true,
00084 float maxBpp = -1.0f,
00085 bool useWorldFile = true);
00086
00101 LT_STATUS initialize(LTIOStreamInf &stream,
00102 bool isPersistent = true,
00103 float maxBpp = -1.0f,
00104 bool useWorldFile = true);
00109
00122 LT_STATUS setParameter_Precision(lt_uint32 precision);
00123 lt_uint32 getParameter_Precision() const;
00124 lt_uint32 getParameter_MinPrecision() const;
00125 lt_uint32 getParameter_MaxPrecision() const;
00126 lt_uint32 getParameter_DefaultPrecision() const;
00133
00144 LT_STATUS setParameter_Layers(lt_uint32 numLayers);
00145 lt_uint32 getParameter_Layers() const;
00146 lt_uint32 getParameter_MinLayers() const;
00147 lt_uint32 getParameter_MaxLayers() const;
00148 lt_uint32 getParameter_DefaultLayers() const;
00161 void getParameter_TileSize(int& width, int& height) const;
00162
00174 void getParameter_Precincts(const int*& widths,
00175 const int*& heights,
00176 int& numPrecincts) const;
00177
00185 J2KProgressionOrder getParameter_ProgressionOrder() const;
00186
00195 void getParameter_CodeblockSize(int& width, int& height) const;
00196
00207 bool getParameter_Wavelet97() const;
00208
00217 bool getParameter_UsingYCbCr() const;
00218
00228 lt_uint8 getNumLevels() const;
00229
00241 LT_STATUS readMetadataBox(const lt_uint8* uuid, LTIOStreamInf& stream);
00242
00243
00244 LT_STATUS writeProfile(const LTFileSpec& file) const;
00245
00246
00247 Jpeg2000ReaderSource& getReaderSouce() const;
00248
00249
00250
00251
00252 LT_STATUS setTileMaskList(const lt_uint32* tileMaskList, lt_uint32 tileMaskListLen);
00253
00254
00255 virtual lt_int64 getEncodingCost(const LTIScene& scene) const;
00256 virtual lt_uint32 getModifications(const LTIScene &scene) const;
00257
00258 protected:
00259
00260 private:
00261 LT_STATUS privateInit(bool isPersistent,
00262 float maxBpp,
00263 bool useWorldFile);
00264
00265 Jpeg2000ReaderManager* m_manager;
00266 Jpeg2000ReaderStreamSource* m_source;
00267 JPCReader* m_reader;
00268
00269 const lt_uint32* m_tileMaskList;
00270 lt_uint32 m_tileMaskListLen;
00271 };
00272
00273
00274 LT_END_NAMESPACE(LizardTech)
00275
00276 #if defined(LT_COMPILER_MS)
00277 #pragma warning(pop)
00278 #endif
00279
00280 #endif // J2KIMAGEREADER_H