コード例 #1
0
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();
}
コード例 #2
0
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);
}
コード例 #3
0
TEST(createDecoderViaMimeType, CodecLibrary)
{
    setUp();

    std::stringstream ss;
    HBitmapDecoder decoder = theCodecLibrary->createDecoder(msBmp, ss);

    CHECK(dynamic_cast<WindowsBitmapDecoder*>(decoder.get()));

    tearDown();
}
コード例 #4
0
TEST(createDecoderAutoDetermine, CodecLibrary)
{
    setUp();

    std::ifstream inFile("basic.bmp", std::ios::binary);
    CHECK_EQUAL(0, !inFile);
    HBitmapDecoder decoder = theCodecLibrary->createDecoder(inFile);

    CHECK(decoder.get());
    CHECK(dynamic_cast<WindowsBitmapDecoder*>(decoder.get()));

    tearDown();
}
コード例 #5
0
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);
}
コード例 #6
0
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();
}
コード例 #7
0
	void CodecLibrary::registerDecoder(const HBitmapDecoder &decoder){
		myDecoders.insert(decoderPair(decoder->getMimeType(), decoder));
	}