MrSID Decode SDK for Raster Reference Manual
9.5.1.4427
Main Page
Namespaces
Classes
Files
Examples
ImageInfo.cpp
/* $Id$ */
/* //////////////////////////////////////////////////////////////////////////
// //
// This code is Copyright (c) 2008 LizardTech, Inc, 1008 Western Avenue, //
// Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
// prohibited. Access to and use of this code is permitted only under //
// license from LizardTech, Inc. Portions of the code are protected by //
// US and foreign patents and other filings. All Rights Reserved. //
// //
/* PUBLIC */
// This example shows the basic image information available from an LTIImageStage.
#include "main.h"
#include "support.h"
#include "
lt_fileSpec.h
"
#include "
lti_geoCoord.h
"
#include "
lti_utils.h
"
#include "
MrSIDImageReader.h
"
#include "
lti_pixel.h
"
#include "
lti_sample.h
"
LT_USE_NAMESPACE
(
LizardTech
);
LT_STATUS
ImageInfo()
{
LT_STATUS
sts =
LT_STS_Uninit
;
// make the image reader
const
LTFileSpec
fileSpec(INPUT_PATH(
"meg_cr20.sid"
));
MrSIDImageReader
*reader =
MrSIDImageReader::create
();
TEST_BOOL(reader != NULL);
TEST_SUCCESS(reader->
initialize
(fileSpec));
// get some information about the image
TEST_BOOL(reader->
getWidth
() == 640);
TEST_BOOL(reader->
getHeight
() == 480);
TEST_BOOL(reader->
getColorSpace
() ==
LTI_COLORSPACE_RGB
);
TEST_BOOL(reader->
getNumBands
() == 3);
TEST_BOOL(reader->
getDataType
() ==
LTI_DATATYPE_UINT8
);
TEST_BOOL(reader->
getNominalImageSizeWithAlpha
() == 640 * 480 * 3 * 1);
TEST_BOOL(reader->
getMinMagnification
() == 0.0625);
TEST_BOOL(
LTIUtils::magToLevel
(0.0625) == 4);
TEST_BOOL(reader->
getMaxMagnification
() == 1048576);
TEST_BOOL(
LTIUtils::magToLevel
(1048576) == -20);
// (an arbitrarily large value)
const
LTIGeoCoord
& geo = reader->
getGeoCoord
();
TEST_BOOL(geo.
getX
() == 0.0);
TEST_BOOL(geo.
getY
() == 479.0);
TEST_BOOL(geo.
getXRes
() == 1.0);
TEST_BOOL(geo.
getYRes
() == -1.0);
const
LTIPixel
*nd = reader->
getNoDataPixel
();
if
(nd != NULL)
{
for
(
lt_uint16
b = 0; b < nd->
getNumBands
(); b++)
TEST_BOOL(nd->
getSample
(b).
getValueAsDouble
() == 0);
// black
}
reader->
release
();
reader = NULL;
return
LT_STS_Success
;
}
LizardTech