diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-05-29 23:38:43 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-05-29 23:38:43 +0200 |
commit | 9ef1de248a0c077f74f7724357cee4a37b493cde (patch) | |
tree | 884d3009728fddb6a72bd1f72cb2915deafbd0dc | |
parent | c05fc9e328968a33723292fdb00ee56f0d3300ba (diff) | |
download | graphlcd-base-9ef1de248a0c077f74f7724357cee4a37b493cde.tar.gz graphlcd-base-9ef1de248a0c077f74f7724357cee4a37b493cde.tar.bz2 |
re-enable transparency
-rw-r--r-- | glcdgraphics/extformats.c | 12 |
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; } } |