summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glcdgraphics/extformats.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/glcdgraphics/extformats.c b/glcdgraphics/extformats.c
index 0cbcfa6..c69ee13 100644
--- a/glcdgraphics/extformats.c
+++ b/glcdgraphics/extformats.c
@@ -104,16 +104,16 @@ bool cExtFormatFile::Load(cImage & image, const string & fileName)
uint32_t * bmpdata = new uint32_t[height * width];
//Dprintf("this image has %d colors\n", (*it).totalColors());
+ bool isMatte = (*it).matte();
const PixelPacket *pix = (*it).getConstPixels(0, 0, (int)width, (int)height);
- //uint8_t trans = 0;
+
for (int iy = 0; iy < (int)height; ++iy) {
for (int ix = 0; ix < (int)width; ++ix) {
- //trans = (uint8_t)(~int(pix->opacity * 255 / MaxRGB));
- //if ( trans == 0 ) {
- // bmpdata[iy*width+ix] = cColor::Transparent;
- //} else {
+ if ( isMatte && pix->opacity == MaxRGB ) {
+ bmpdata[iy*width+ix] = cColor::Transparent;
+ } else {
bmpdata[iy*width+ix] = (uint32_t)( 0xFF000000 | (int(pix->red * 255 / MaxRGB) << 16) | (int(pix->green * 255 / MaxRGB) << 8) | int(pix->blue * 255 / MaxRGB));
- //}
+ }
++pix;
}
}