MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
TIFFImageWriter.h
Go to the documentation of this file.
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 private:
00079    static LT_STATUS getLibtiffError(void);
00080 
00081    struct tiff *m_tiff;
00082    bool m_writeResolution;
00083    bool m_writeGeoTIFF;
00084    bool m_allowBigTIFF;
00085    bool m_forceBigTIFF;
00086 
00087    long m_currentRow;
00088    lt_int32 m_compression;
00089    LTReusableBuffer* m_stripBuffer;
00090 };
00091 
00092 
00093 LT_END_NAMESPACE(LizardTech)
00094 
00095 #if defined(LT_COMPILER_MS)
00096    #pragma warning(pop)
00097 #endif
00098 
00099 #endif // TIFFIMAGEWRITER_H