Statistics
| Revision:

svn-gvsig-desktop / tags / v1_9_Build_1229 / libraries / libjni-mrsid / sdk / include / writers / JpegImageWriter.h @ 31466

History | View | Annotate | Download (2.64 KB)

1 20023 maquerol
/* $Id: JpegImageWriter.h 3539 2006-01-09 12:23:20Z nacho $ */
2
/* //////////////////////////////////////////////////////////////////////////
3
//                                                                         //
4
// This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue,   //
5
// Suite 200, Seattle, WA 98104.  Unauthorized use or distribution         //
6
// prohibited.  Access to and use of this code is permitted only under     //
7
// license from LizardTech, Inc.  Portions of the code are protected by    //
8
// US and foreign patents and other filings. All Rights Reserved.          //
9
//                                                                         //
10
////////////////////////////////////////////////////////////////////////// */
11
/* PUBLIC */
12
13
#ifndef JPEGIMAGEWRITER_H
14
#define JPEGIMAGEWRITER_H
15
16
// lt_lib_mrsid_core
17
#include "lti_geoFileImageWriter.h"
18
19
// system
20
#include <stdio.h>
21
22
#if defined(LT_COMPILER_MS)
23
   #pragma warning(push,4)
24
#endif
25
26
struct jpeg_compress_struct;
27
struct jpeg_error_mgr;
28
29
LT_BEGIN_NAMESPACE(LizardTech)
30
31
class LTFileSpec;
32
class LTReusableBuffer;
33
34
/**
35
 * writes an image stage to a JPEG file
36
 *
37
 * This class writes an image stage to a JPEG file.
38
 */
39
class JpegImageWriter : public LTIGeoFileImageWriter
40
{
41
public:
42
   /**
43
    * constructor
44
    *
45
    * Creates a writer for JPEG images.
46
    *
47
    * @param  image      the image to write from
48
    * @param  quality    sets the JPEG "quality" encoding parameter;
49
    *                    this is a value between 0 and 100
50
    * @param  smoothing  sets the JPEG "smoothing" encoding parameter;
51
    *                    this is a value between 0 and 100
52
    */
53
   JpegImageWriter(LTIImageStage* image,
54
                   int quality = 0,          // 0-100
55
                   int smoothing = 0);       // 0-100
56
   virtual ~JpegImageWriter();
57
   LT_STATUS initialize();
58
59
   LT_STATUS writeBegin(const LTIScene& scene);
60
   LT_STATUS writeStrip(LTISceneBuffer& stripBuffer, const LTIScene& stripScene);
61
   LT_STATUS writeEnd();
62
63
private:
64
   typedef LTIGeoFileImageWriter Super;
65
66
   LT_STATUS checkImpedance() const;
67
68
   FILE* m_file;
69
70
   //struct that contains the JPEG compression parameters
71
   struct jpeg_compress_struct* m_jpegObject;
72
73
   //struct to handle error messages
74
   struct jpeg_error_mgr* m_jpegErr;
75
76
   //two parameters for setting compression quality
77
   int m_quality;
78
   int m_smoothingFactor;
79
80
   LTReusableBuffer* m_stripBuffer;
81
82
   // nope
83
   JpegImageWriter();
84
   JpegImageWriter(JpegImageWriter&);
85
   JpegImageWriter& operator=(const JpegImageWriter&);
86
};
87
88
89
LT_END_NAMESPACE(LizardTech)
90
91
#if defined(LT_COMPILER_MS)
92
        #pragma warning(pop)
93
#endif
94
95
#endif // JPEGIMAGEWRITER_H