MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

BMPImageWriter.h
Go to the documentation of this file.
1 /* $Id$ */
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 // //
11 /* PUBLIC */
12
13 #ifndef BMPIMAGEWRITER_H
14 #define BMPIMAGEWRITER_H
15
16 // lt_lib_mrsid_core
17 #include "lti_geoFileImageWriter.h"
18
19 // lt_lib_utils
20 #include "lti_imageWriter.h"
21
22
23 LT_BEGIN_NAMESPACE(LizardTech)
24
25 #if defined(LT_COMPILER_MS)
26 #pragma warning(push,4)
27 #endif
28
29 class LTReusableBuffer;
30 class LTIBandSelectFilter;
31
37 class BMPImageWriter : public LTIGeoFileImageWriter
38 {
39 LT_DISALLOW_COPY_CONSTRUCTOR(BMPImageWriter);
40 public:
41 BMPImageWriter(void);
42 ~BMPImageWriter(void);
43
44 LT_STATUS initialize(LTIImageStage* image);
45
46 LT_STATUS writeBegin(const LTIScene& scene);
47 LT_STATUS writeStrip(LTISceneBuffer& stripBuffer, const LTIScene& stripScene);
48 LT_STATUS writeEnd();
49
50 private:
51 LT_STATUS checkImpedance() const;
52
53 LT_STATUS normalizeProperties(lt_uint32 width, lt_uint32 height);
54 LT_STATUS initFile(lt_uint32 width, lt_uint32 height);
55 LT_STATUS writeHeaders(lt_uint32 width, lt_uint32 height);
56 LT_STATUS initBitmapHeader(lt_uint32 width, lt_uint32 height);
57 LT_STATUS initEndian();
58 LT_STATUS writeStrip(lt_uint32 stripHeight,
59 const lt_uint8* buf);
60
61 lt_uint32 m_alignedRowBytes;
62 lt_uint32 m_unalignedRowBytes;
63 lt_uint8* m_padding;
64 lt_uint32 m_padsize;
65
66 struct bitmapFileHeaderType;
67 struct bitmapHeaderType;
68
69 bitmapFileHeaderType* m_bmpFileHeader;
70 bitmapHeaderType* m_bmpHeader;
71
72 // This will provide a marker so the image doesn't write over itself
73 // I need to know how far back to seek.
74 lt_int32 m_seekBackTo;
75
76 LTReusableBuffer* m_stripBuffer;
77 };
78
79
80 LT_END_NAMESPACE(LizardTech)
81
82 #if defined(LT_COMPILER_MS)
83 #pragma warning(pop)
84 #endif
85
86 #endif // BMPIMAGEWRITER_H

LizardTech