MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
JpegImageWriter.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 JPEGIMAGEWRITER_H
00014 #define JPEGIMAGEWRITER_H
00015 
00016 // lt_lib_mrsid_core
00017 #include "lti_geoFileImageWriter.h"
00018 
00019 #if defined(LT_COMPILER_MS)
00020    #pragma warning(push,4)
00021 #endif
00022 
00023 LT_BEGIN_NAMESPACE(LizardTech)
00024 
00025 
00031 class JpegImageWriter : public LTIGeoFileImageWriter
00032 {
00033    LT_DISALLOW_COPY_CONSTRUCTOR(JpegImageWriter);
00034 public:
00035    JpegImageWriter(void);
00036    virtual ~JpegImageWriter(void);
00048    LT_STATUS initialize(LTIImageStage *imageStage,
00049                         lt_int32 quality = 0,      // 0-100
00050                         lt_int32 smoothing = 0);   // 0-100   
00051 
00052    LT_STATUS writeBegin(const LTIScene& scene);
00053    LT_STATUS writeStrip(LTISceneBuffer& stripBuffer, const LTIScene& stripScene);
00054    LT_STATUS writeEnd();
00055 
00056 private:
00057    struct ErrorManager;
00058    struct StreamManager;
00059    
00060    LT_STATUS writeBegin8(const LTIScene& scene);
00061    LT_STATUS writeStrip8(LTISceneBuffer& stripBuffer, const LTIScene& stripScene);
00062    LT_STATUS writeEnd8();
00063 
00064    LT_STATUS writeBegin12(const LTIScene& scene);
00065    LT_STATUS writeStrip12(LTISceneBuffer& stripBuffer, const LTIScene& stripScene);
00066    LT_STATUS writeEnd12();
00067    
00068    //two parameters for setting compression quality
00069    lt_int32 m_quality;
00070    lt_int32 m_smoothingFactor;
00071    
00072    void *m_jpeg;
00073    ErrorManager *m_error;
00074    bool m_use8;
00075 };
00076 
00077 
00078 LT_END_NAMESPACE(LizardTech)
00079 
00080 #if defined(LT_COMPILER_MS)
00081    #pragma warning(pop)
00082 #endif
00083 
00084 #endif // JPEGIMAGEWRITER_H