00001
00034 #ifndef INC_SPATMOD_IMAGETARGETJPEG_H
00035 #define INC_SPATMOD_IMAGETARGETJPEG_H
00036
00037 #ifndef INC_SPATMOD_IMAGETARGETFILE_H
00038 #include <spatmod/imagetargetfile.h>
00039 #endif
00040
00041 class JPEGEXT;
00042
00043 namespace SPATMOD {
00044 namespace IMAGE {
00045
00046
00047
00051 class TARGET_JPEG : public TARGET_FILE {
00052 public:
00053
00055 class FACTORY : public FACTORY_TARGET_FILE {
00056 public:
00057
00059 explicit FACTORY (
00060 UINT16 quality = 75
00061 );
00062
00064 FACTORY (const FACTORY& rhs);
00065
00067 virtual ~FACTORY ();
00068
00069 private:
00070 #ifndef GENERATING_DOXYGEN_OUTPUT
00071 UINT16 m_Quality;
00072
00073
00074 virtual FACTORY_TARGET_FILE * v_Clone () const;
00075 virtual TARGET_FILE * v_ConstructTarget (STAGE *pInputStage, const FILEPATH& filepath, GEOFORMATS GeoFormats) const;
00076
00077
00078 FACTORY& operator= (const FACTORY& rhs);
00079 #endif
00080 };
00081
00083 TARGET_JPEG (
00084 STAGE *pInputStage,
00085 const FILEPATH& filepath,
00086 UINT16 quality = 75,
00087 GEOFORMATS GeoFormats = GEOFORMAT_None
00088 );
00089
00091 TARGET_JPEG (
00092 STAGE *pInputStage,
00093 UINT16 quality = 75,
00094 GEOFORMATS GeoFormats = GEOFORMAT_None
00095 );
00096
00098 virtual ~TARGET_JPEG ();
00099
00100 private:
00101 #ifndef GENERATING_DOXYGEN_OUTPUT
00102 JPEGEXT *m_pWriter;
00103 UINT16 m_Quality;
00104 bool m_UseMemory;
00105 SIMPLE_ARRAY<UINT8> m_RowBuf;
00106
00107
00108 virtual ERRVALUE v_FillTileRows(INT32, INT32);
00109 virtual ERRVALUE v_Initialize ();
00110 virtual ERRVALUE v_PushBegin (const SECTION_ITERATOR& iterator);
00111 virtual ERRVALUE v_PushEnd ();
00112 virtual ERRVALUE v_TileBegin (const FILEPATH& FilePath, const LRECT2D& SubSection);
00113 virtual ERRVALUE v_TileEnd ();
00114 virtual ERRVALUE v_WriteSubSection (const SECTION& SubSection, const BUFFER& buffer);
00115
00116
00117 virtual void* v_DetachBuffer ();
00118 virtual const void* v_GetBuffer () const;
00119 virtual INT64 v_GetBufferSize () const;
00120
00121
00122 TARGET_JPEG (const TARGET_JPEG&);
00123 TARGET_JPEG& operator= (const TARGET_JPEG&);
00124 #endif // GENERATING_DOXYGEN_OUTPUT
00125
00126 };
00127
00128
00129
00130 }
00131 }
00132
00133 #endif // INC_SPATMOD_IMAGETARGETJPEG_H
00134