X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..8ae4f08661d7b324d5cd7aa16ab1a7b2810d94f2:/src/common/imagpng.cpp?ds=sidebyside diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp index 21853b1010..3bf12e257d 100644 --- a/src/common/imagpng.cpp +++ b/src/common/imagpng.cpp @@ -4,7 +4,7 @@ // Author: Robert Roebling // RCS-ID: $Id$ // Copyright: (c) Robert Roebling -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -570,7 +570,7 @@ wxPNGHandler::LoadFile(wxImage *image, png_set_expand( png_ptr ); png_set_filler( png_ptr, 0xff, PNG_FILLER_AFTER ); - image->Create( (int)width, (int)height ); + image->Create((int)width, (int)height, false /* no need to init pixels */); if (!image->Ok()) goto error; @@ -700,7 +700,11 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos data[(x << 2) + 0] = *ptr++; data[(x << 2) + 1] = *ptr++; data[(x << 2) + 2] = *ptr++; - if (( !image->HasMask() ) || \ + if ( image->HasAlpha() ) + { + data[(x << 2) + 3] = image->GetAlpha(x, y); + } + else if (( !image->HasMask() ) || \ (data[(x << 2) + 0] != image->GetMaskRed()) || \ (data[(x << 2) + 1] != image->GetMaskGreen()) || \ (data[(x << 2) + 2] != image->GetMaskBlue()))