Pipeline.cpp
#include "main.h"
#include "support.h"
#include "lti_pixel.h"
#include "lti_scene.h"
#include "lti_rawImageReader.h"
#include "lti_colorTransformer.h"
#include "lti_cropFilter.h"
#include "lti_rawImageWriter.h"
LT_USE_NAMESPACE(LizardTech);
LT_STATUS Pipeline()
{
LT_STATUS sts = LT_STS_Uninit;
const LTIPixel inputProps(LTI_COLORSPACE_RGB, 3, LTI_DATATYPE_UINT8);
LTIRawImageReader *reader = LTIRawImageReader::create();
TEST_BOOL(reader != NULL);
TEST_SUCCESS(reader->initialize(INPUT_PATH("meg.bip"), inputProps, 640, 480));
LTIColorTransformer *colorFilter = LTIColorTransformer::create();
TEST_BOOL(colorFilter != NULL);
const LTIPixel grayPixel(LTI_COLORSPACE_GRAYSCALE, 1, reader->getDataType());
TEST_SUCCESS(colorFilter->initialize(reader, grayPixel));
TEST_BOOL(colorFilter->getColorSpace() == LTI_COLORSPACE_GRAYSCALE);
LTICropFilter *cropFilter = LTICropFilter::create();
TEST_BOOL(cropFilter != NULL);
TEST_SUCCESS(cropFilter->initialize(colorFilter, 20, 20, 600, 440));
TEST_BOOL(cropFilter->getWidth() == 600);
TEST_BOOL(cropFilter->getHeight() == 440);
LTIRawImageWriter writer;
TEST_SUCCESS(writer.initialize(cropFilter));
TEST_SUCCESS(writer.setOutputFileSpec(OUTPUT_PATH("meg_filter.raw")));
const LTIScene scene(0, 0, 600, 440, 1.0);
TEST_SUCCESS(writer.write(scene));
TEST_BOOL(Compare(OUTPUT_PATH("meg_filter.raw"), INPUT_PATH("meg_filter.raw")));
Remove(OUTPUT_PATH("meg_filter.raw"));
cropFilter->release();
cropFilter = NULL;
colorFilter->release();
colorFilter = NULL;
reader->release();
reader = NULL;
return LT_STS_Success;
}