From 9bbaab6e56b85ef95615f6cdbd4e089df7a06855 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Mon, 14 Dec 2020 20:06:35 +0100 Subject: [PATCH] Fix converting wxBitmap to wxImage wxBitmap can have both alpha channel and a mask so alpha channel values should be passed to the target wxImage even if mask exists. Closes #19010. --- src/osx/core/bitmap.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/osx/core/bitmap.cpp b/src/osx/core/bitmap.cpp index e1bddf920a..ef751acdc0 100644 --- a/src/osx/core/bitmap.cpp +++ b/src/osx/core/bitmap.cpp @@ -1304,12 +1304,13 @@ wxImage wxBitmap::ConvertToImage() const else if ( r == MASK_RED && g == MASK_GREEN && b == MASK_BLUE ) b = MASK_BLUE_REPLACEMENT ; } - else if ( hasAlpha ) + + if ( hasAlpha ) { *alpha++ = a ; #if wxOSX_USE_PREMULTIPLIED_ALPHA // this must be non-premultiplied data - if ( a != 0xFF && a!= 0 ) + if ( !hasMask && a != 0xFF && a!= 0 ) { r = r * 255 / a; g = g * 255 / a;