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 TIFFIMAGEWRITER_H 00014 #define TIFFIMAGEWRITER_H 00015 00016 // lt_lib_mrsid_core 00017 #include "lti_geoFileImageWriter.h" 00018 00019 struct tiff; 00020 00021 00022 LT_BEGIN_NAMESPACE(LizardTech) 00023 00024 #if defined(LT_COMPILER_MS) 00025 #pragma warning(push,4) 00026 #endif 00027 00028 class LTReusableBuffer; 00029 00035 class TIFFImageWriter : public LTIGeoFileImageWriter 00036 { 00037 LT_DISALLOW_COPY_CONSTRUCTOR(TIFFImageWriter); 00038 public: 00046 TIFFImageWriter(bool writeGeoTIFF = false); 00047 00048 virtual ~TIFFImageWriter(); 00049 LT_STATUS initialize(LTIImageStage *image); 00050 00059 void setWriteResolution(bool enable); 00060 00066 void setAllowWritingBigTIFF(bool allowBigTIFF); 00072 void setForceWritingBigTIFF(bool forceBigTIFF); 00073 00074 LT_STATUS writeBegin(const LTIScene& scene); 00075 LT_STATUS writeStrip(LTISceneBuffer& stripBuffer, const LTIScene& stripScene); 00076 LT_STATUS writeEnd(); 00077 00078 00079 void setEndian(LTIEndian value); 00080 00081 private: 00082 static LT_STATUS getLibtiffError(void); 00083 00084 struct tiff *m_tiff; 00085 LTIEndian m_endian; 00086 00087 bool m_writeResolution; 00088 bool m_writeGeoTIFF; 00089 bool m_allowBigTIFF; 00090 bool m_forceBigTIFF; 00091 00092 long m_currentRow; 00093 lt_int32 m_compression; 00094 LTReusableBuffer* m_stripBuffer; 00095 }; 00096 00097 00098 LT_END_NAMESPACE(LizardTech) 00099 00100 #if defined(LT_COMPILER_MS) 00101 #pragma warning(pop) 00102 #endif 00103 00104 #endif // TIFFIMAGEWRITER_H
LizardTech |