TEST(doubleDecorator, CodecLibrary) { setUp(); std::ifstream inFile("basic.bmp", std::ios::binary); CHECK_EQUAL(0, !inFile); HBitmapDecoder decoder = theCodecLibrary->createDecoder(inFile); HBitmapIterator iterator = decoder->createIterator(); CHECK(iterator.get()); CHECK_EQUAL(100, iterator->getBitmapHeight()); CHECK_EQUAL(100, iterator->getBitmapWidth()); HBitmapIterator colorInvertIterator(new ColorInversionDecorator(iterator)); HBitmapIterator darkenColorInvertIterator(new BrightnessDecorator(colorInvertIterator, -50)); HBitmapEncoder encoder = theCodecLibrary->createEncoder(msBmp, darkenColorInvertIterator); std::ofstream outFile("output_darkInverted.bmp", std::ios::binary); encoder->encodeToStream(outFile); // TODO: file compare input/output tearDown(); }
TEST(UsingDecoratorIterators,GrayscaleDecorator) { std::shared_ptr<CodecLibrary> myCodecLibrary; myCodecLibrary.reset(new CodecLibrary); myCodecLibrary->registerEncoder(HBitmapEncoder(new WindowsBitmapEncoder)); myCodecLibrary->registerDecoder(HBitmapDecoder(new WindowsBitmapDecoder)); std::ifstream inFile("basic.bmp", std::ios::binary); HBitmapDecoder myDecoder = myCodecLibrary->createDecoder("image/x-ms-bmp",inFile); HBitmapIterator myIterator = myDecoder->createIterator(); HBitmapIterator myDecorator(new GrayscaleDecorator(myIterator)); HBitmapEncoder myEncoder = myCodecLibrary->createEncoder("image/x-ms-bmp", myDecorator); CHECK(myEncoder); std::ofstream outFile("Grayscale.bmp", std::ios::binary); myEncoder->writeToStream(outFile); CHECK(outFile); }
TEST(CreateIterator, CodecLibrary) { std::shared_ptr<CodecLibrary> myCodecLibrary; myCodecLibrary.reset(new CodecLibrary); myCodecLibrary->registerEncoder(HBitmapEncoder(new WindowsBitmapEncoder)); myCodecLibrary->registerDecoder(HBitmapDecoder(new WindowsBitmapDecoder)); std::ifstream inFile("basic.bmp", std::ios::binary); HBitmapDecoder myDecoder = myCodecLibrary->createDecoder("image/x-ms-bmp", inFile); HBitmapIterator myIterator = myDecoder->createIterator(); CHECK(myIterator); }
TEST(windowsBitmapDecodeEncode, CodecLibrary) { setUp(); std::ifstream inFile("basic.bmp", std::ios::binary); CHECK_EQUAL(0, !inFile); HBitmapDecoder decoder = theCodecLibrary->createDecoder(inFile); HBitmapIterator iterator = decoder->createIterator(); CHECK(iterator.get()); CHECK_EQUAL(100, iterator->getBitmapHeight()); CHECK_EQUAL(100, iterator->getBitmapWidth()); HBitmapEncoder encoder = theCodecLibrary->createEncoder(msBmp, iterator); std::ofstream outFile("output_basicCopy.bmp", std::ios::binary); encoder->encodeToStream(outFile); // TODO: file compare input/output tearDown(); }