MrSID Decode SDK for Raster Reference Manual
9.1.0.4045
Main Page
Namespaces
Classes
Files
Examples
File List
File Members
ImageReader.h
Go to the documentation of this file.
1
/* //////////////////////////////////////////////////////////////////////////
2
// //
3
// This code is Copyright (c) 2010 LizardTech, Inc, 1008 Western Avenue, //
4
// Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
5
// prohibited. Access to and use of this code is permitted only under //
6
// license from LizardTech, Inc. Portions of the code are protected by //
7
// US and foreign patents and other filings. All Rights Reserved. //
8
// //
10
/* PUBLIC */
11
12
#ifndef ImageReader_H
13
#define ImageReader_H
14
15
// lt_lib_base
16
#include "
lt_base.h
"
17
18
// lt_lib_mrsid_core
19
#include "
lti_geoImageReader.h
"
20
21
// local
22
#include "
nitf_types.h
"
23
24
LT_BEGIN_LIZARDTECH_NAMESPACE
25
class
LTFileSpec
;
26
class
LTIOStreamInf
;
27
class
LTReusableBuffer;
28
class
NITFReaderManager;
29
30
namespace
Nitf {
31
class
FileHeader;
32
class
ImageSegment;
33
class
ImageSegmentMetadata;
34
class
SecurityMetadata;
35
36
46
class
ImageReader
:
public
LTIGeoImageReader
47
{
48
LT_DISALLOW_COPY_CONSTRUCTOR(
ImageReader
);
49
public
:
53
const
char
*
getIID1
()
const
;
54
55
lt_int64
getPhysicalFileSize
()
const
;
56
57
// not for public use
58
NITFReaderManager&
getManager
()
const
;
59
63
Format
getFormat
()
const
;
64
68
Layout
getLayout
()
const
;
69
73
bool
isBlocked
()
const
;
74
78
bool
isMasked
()
const
;
79
83
int
getSegmentNumber
()
const
;
84
88
const
ImageSegmentMetadata
*
getImageMetadata
()
const
;
89
93
const
SecurityMetadata
*
getSecurityMetadata
()
const
;
94
95
// inherited
96
LT_STATUS
getDimsAtMag
(
double
mag,
97
lt_uint32
& width,
98
lt_uint32
& height)
const
= 0;
99
100
// not for public use
101
// does NOT take ownership of the tileList array
102
// this version returns failure, only override is for JP2 image segments
103
virtual
LT_STATUS
setTileMaskList
(
const
lt_uint32
* tileMaskList,
lt_uint32
tileMaskListLen);
104
105
protected
:
106
~ImageReader
(
void
);
107
ImageReader
(
bool
supportBandSelection);
108
109
const
char
*
getSourceName
(
void
)
const
;
110
111
LT_STATUS
init
(
LTIOStreamInf
*stream,
112
NITFReaderManager *manager,
113
const
ImageSegment
*imageSegment,
114
bool
useWorldFile);
115
116
LT_STATUS
addUnderlyingMetadata
(
const
LTIImageStage
&image);
117
118
// blocked image support
119
LTIScene
computeBlockedScene
(
const
LTIScene
& scene)
const
;
120
LT_STATUS
copyIntoUserBuffer
(
const
LTIScene
& dstScene,
121
LTISceneBuffer
& dstBuffer)
const
;
122
bool
activeSceneContains
(
const
LTIScene
& scene)
const
;
123
void
putBlockIntoBuffer_SEQ
(
LTISceneBuffer
& cBuffer,
124
lt_uint8
* buf,
125
lt_uint32
blockRow,
126
lt_uint32
blockCol,
127
lt_uint32
blockBand)
const
;
128
void
putBlockIntoBuffer_BLOCK
(
LTISceneBuffer
& cBuffer,
129
lt_uint8
* buf,
130
lt_uint32
blockRow,
131
lt_uint32
blockCol)
const
;
132
void
putBlockIntoBuffer_PIXEL
(
LTISceneBuffer
& cBuffer,
133
lt_uint8
* buf,
134
lt_uint32
blockRow,
135
lt_uint32
blockCol)
const
;
136
void
putBlockIntoBuffer_ROW
(
LTISceneBuffer
& cBuffer,
137
lt_uint8
* buf,
138
lt_uint32
blockRow,
139
lt_uint32
blockCol)
const
;
140
141
142
143
LTIOStreamInf
*
m_stream
;
144
NITFReaderManager *
m_manager
;
145
146
const
ImageSegment
*
m_imageSegment
;
147
const
FileHeader
*
m_fileHeader
;
148
149
LTReusableBuffer *
m_reusableBuffer
;
150
LTIScene
*
m_activeScene
;
151
LTISceneBuffer
*
m_activeSceneBuffer
;
152
};
153
154
155
}
156
LT_END_LIZARDTECH_NAMESPACE
157
158
#endif // ImageReader_H
LizardTech