MrSID Decode SDK for Raster Reference Manual
9.1.0.4045
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