]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/png/pngloader.cpp
Add pixel formats with a padding component
[libs/gui.git] / source / graphics / png / pngloader.cpp
index 50d58b3e3d9fabef282e1f2bf6574ba228f00998..35e6a971de3981bbd7b3deb501b5359bea3199fb 100644 (file)
@@ -80,14 +80,11 @@ void PngLoader::load(Image::Data &data)
        case PNG_COLOR_TYPE_PALETTE:    data.fmt = COLOR_INDEX; break;
        case PNG_COLOR_TYPE_GRAY:       data.fmt = LUMINANCE; break;
        case PNG_COLOR_TYPE_GRAY_ALPHA: data.fmt = LUMINANCE_ALPHA; break;
-       case PNG_COLOR_TYPE_RGB:        data.fmt = RGB; break;
+       case PNG_COLOR_TYPE_RGB:        data.fmt = (nchans==4 ? RGBX : RGB); break;
        case PNG_COLOR_TYPE_RGB_ALPHA:  data.fmt = RGBA; break;
        default: throw unsupported_image_format("unknown color type");
        }
 
-       if(nchans==4 && data.fmt==RGB)
-               png_set_strip_alpha(priv->png);
-
        data.data = new char[data.stride*data.height];
        for(unsigned y=0; y<data.height; ++y)
                png_read_row(priv->png, reinterpret_cast<png_byte *>(data.data+data.stride*(data.height-1-y)), 0);