MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

DecodeMrSIDToTIFF.cpp
/* $Id$ */
/* //////////////////////////////////////////////////////////////////////////
// //
// This code is Copyright (c) 2005 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 demonstrates how to decode a scene from a MrSID file to a
// TIFF file, by constructing a pipeline consisting of a MrSIDImageReader
// which feeds into a TIFFImageWriter.
#include "main.h"
#include "support.h"
#include "lt_fileSpec.h"
#include "lti_scene.h"
#include "MrSIDImageReader.h"
#include "TIFFImageWriter.h"
LT_USE_NAMESPACE(LizardTech);
LT_STATUS DecodeMrSIDToTIFF()
{
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));
// make the TIFF writer
TIFFImageWriter writer;
TEST_SUCCESS(writer.initialize(reader));
// set up the output file
TEST_SUCCESS(writer.setOutputFileSpec(OUTPUT_PATH("meg_cr20_magP5.tif")));
// we will decode the whole image at half resolution
lt_uint32 w = 0, h = 0;
TEST_SUCCESS(reader->getDimsAtMag(0.5, w, h));
const LTIScene scene(0, 0, w, h, 0.5);
// write the scene to the file
TEST_SUCCESS(writer.write(scene));
// verify we got the right output
#ifdef LT_LITTLE_ENDIAN
TEST_BOOL(Compare(OUTPUT_PATH("meg_cr20_magP5.tif"), INPUT_PATH("meg_cr20_magP5.tif")));
#else
TEST_BOOL(Compare(OUTPUT_PATH("meg_cr20_magP5.tif"), INPUT_PATH("meg_cr20_magP5.tif-SOL")));
#endif
Remove(OUTPUT_PATH("meg_cr20_magP5.tif"));
reader->release();
reader = NULL;
return LT_STS_Success;
}

LizardTech