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); }
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; }