diff options
Diffstat (limited to 'glcdgraphics/extformats.c')
-rw-r--r-- | glcdgraphics/extformats.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/glcdgraphics/extformats.c b/glcdgraphics/extformats.c index 0d39880..6a8de20 100644 --- a/glcdgraphics/extformats.c +++ b/glcdgraphics/extformats.c @@ -75,8 +75,8 @@ bool cExtFormatFile::Load(cImage & image, const string & fileName) bool ignoreImage = false; //if (colors != 0){ - (*it).opacity(OpaqueOpacity); - (*it).backgroundColor( Color ( 0,0,0,0) ); + //(*it).opacity(OpaqueOpacity); + //(*it).backgroundColor( Color ( 0,0,0,0) ); (*it).quantizeColorSpace( RGBColorspace ); (*it).quantizeColors( 256*256*256 /*colors*/ ); (*it).quantize(); @@ -107,7 +107,11 @@ bool cExtFormatFile::Load(cImage & image, const string & fileName) const PixelPacket *pix = (*it).getConstPixels(0, 0, (int)width, (int)height); for (int iy = 0; iy < (int)height; ++iy) { for (int ix = 0; ix < (int)width; ++ix) { - bmpdata[iy*width+ix] = (uint32_t)((~int(pix->opacity * 255 / MaxRGB) << 24) | (int(pix->red * 255 / MaxRGB) << 16) | (int(pix->green * 255 / MaxRGB) << 8) | int(pix->blue * 255 / MaxRGB)); + if ( (int(pix->opacity * 255 / MaxRGB)) < 225 ) { // just an arbitrary border ... + bmpdata[iy*width+ix] = (uint32_t)((~int(pix->opacity * 255 / MaxRGB) << 24) | (int(pix->red * 255 / MaxRGB) << 16) | (int(pix->green * 255 / MaxRGB) << 8) | int(pix->blue * 255 / MaxRGB)); + } else { + bmpdata[iy*width+ix] = cColor::Transparent; + } ++pix; } } |