Пример #1
0
void testBoolean (void) {
    int h = 45;
    int w = 45;
    G8Buffer *buffer = new G8Buffer(h, w);

    AbstractPainter<G8Buffer> painter(buffer);
    painter.drawCircle(    w / 4,     h / 4, w / 4, 255 );
    painter.drawCircle(    w / 4, 3 * h / 4, w / 4, 255 );
    painter.drawCircle(3 * w / 4,     h / 4, w / 4, 255 );
    painter.drawCircle(3 * w / 4, 3 * h / 4, w / 4, 255 );

    RGB24Buffer *sourceImage = new RGB24Buffer(h, w);
    sourceImage->drawG8Buffer(buffer);
    (BMPLoader()).save("source.bmp", sourceImage);

    BooleanBuffer packedBuffer(buffer);
    G8Buffer *unpackBuffer = packedBuffer.unpack(0, 255);
    RGB24Buffer *image = new RGB24Buffer(unpackBuffer->h, unpackBuffer->w);
    image->drawG8Buffer(unpackBuffer);


    (BMPLoader()).save("unpacked.bmp", image);

    packedBuffer.printBuffer();

    delete_safe(image);
    delete_safe(sourceImage);
    delete_safe(unpackBuffer);
    delete_safe(buffer);
}
Пример #2
0
bool BMPLoader::save(string name, G8Buffer *buffer)
{
    RGB24Buffer *toSave = new RGB24Buffer(buffer->getSize());
    toSave->drawG8Buffer(buffer);
    bool result = save(name, toSave);
    delete toSave;
    return result;
}