00001
00028 #ifndef INC_MI32_MG2IMAGEFILEWRITER_H
00029 #define INC_MI32_MG2IMAGEFILEWRITER_H
00030
00031 #ifndef INC_MI32_STDDEFNS_H
00032 #include <mi32/stddefns.h>
00033 #endif
00034
00035 class FILEPATH;
00036 class TRANS2D_MAPGEN;
00037 namespace SPATREF {
00038 class COORDREFSYS;
00039 }
00040 namespace MGD {
00041 class DEVICE;
00042 }
00043 namespace RVC {
00044 class OBJITEM;
00045 }
00046
00047 namespace MGD {
00048
00049 class IMAGEFILEWRITER {
00050 public:
00051
00053 class SETTINGS {
00054 public:
00055
00056 class FORM;
00057
00059 enum FORMAT {
00060 FORMAT_RVC = 0x00000100,
00061 FORMAT_GeoJP2 = 0x00000200,
00062 FORMAT_JP2 = 0x00000400,
00063 FORMAT_GeoTIFF = 0x00000800,
00064 FORMAT_TIFF = 0x00001000,
00065 FORMAT_JPEG = 0x00002000,
00066 FORMAT_PNG = 0x00004000,
00067 FORMAT_MASK = 0xFFFFFF00
00068 };
00069
00071 enum COMPRESSTYPE {
00072 COMPRESSTYPE_None = 0,
00073
00074 COMPRESSTYPE_DPCM = 2,
00075 COMPRESSTYPE_Huffman = 3,
00076 COMPRESSTYPE_LZW = 4,
00077 COMPRESSTYPE_PackBits = 5,
00078 COMPRESSTYPE_JPEG_BestQuality = 6,
00079 COMPRESSTYPE_JPEG_UserQuality = 7,
00080 COMPRESSTYPE_JPEG2000_Lossless = 8,
00081 COMPRESSTYPE_JPEG2000_BestQuality = 9,
00082 COMPRESSTYPE_JPEG2000_UserRatio = 10,
00083 };
00084
00087 SETTINGS (
00088 );
00089
00093 UINT16 GetCompressRatio (
00094 ) const { return (m_CompressRatio); }
00095
00099 UINT16 GetCompressQuality (
00100 ) const { return (m_CompressQuality); }
00101
00103 COMPRESSTYPE GetCompressType (
00104 ) const { return (m_CompressType); }
00105
00108 const char* GetFileExtension (
00109 ) const;
00110
00112 FORMAT GetFormat (
00113 ) const { return (m_Format); }
00114
00117 bool IniRead (
00118 void *IniHandle,
00119 const char *group,
00120 const char *field
00121 );
00122
00124 void IniWrite (
00125 void *IniHandle,
00126 const char *group,
00127 const char *field
00128 ) const;
00129
00130 private:
00131 #ifndef GENERATING_DOXYGEN_OUTPUT
00132
00133 FORMAT m_Format;
00134 COMPRESSTYPE m_CompressType;
00135 UINT16 m_CompressQuality;
00136 UINT16 m_CompressRatio;
00137
00138 friend class SETTINGS::FORM;
00139 #endif // GENERATING_DOXYGEN_OUTPUT
00140 };
00141
00142 IMAGEFILEWRITER (
00143 const SETTINGS& settings
00144 );
00145
00146 ~IMAGEFILEWRITER ();
00147
00148 ERRVALUE Write (
00149 const FILEPATH& filepath,
00150 MGD::DEVICE& DeviceSrc,
00151 const TRANS2D_MAPGEN *pTransToCRS = 0,
00152 bool UseXasAlpha = false
00153 );
00154
00155 ERRVALUE Write (
00156 RVC::OBJITEM& objitem,
00157 MGD::DEVICE& DeviceSrc,
00158 const TRANS2D_MAPGEN *pTransToCRS = 0,
00159 bool UseXasAlpha = false
00160 );
00161
00162 private:
00163 #ifndef GENERATING_DOXYGEN_OUTPUT
00164 SETTINGS m_Settings;
00165 #endif
00166 };
00167
00168
00169
00170
00171 }
00172 #endif // INC_MI32_MG2IMAGEFILEWRITER_H