Vincent Povirk : gdiplus: Disable alpha channel support for BMP images.

Alexandre Julliard julliard at winehq.org
Tue Sep 8 08:54:04 CDT 2009


Module: wine
Branch: master
Commit: 0313f88794823e4b084918d0aee7897de7484c77
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0313f88794823e4b084918d0aee7897de7484c77

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Fri Sep  4 10:23:30 2009 -0500

gdiplus: Disable alpha channel support for BMP images.

---

 dlls/gdiplus/image.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index 73b1dc8..28982a1 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -1509,7 +1509,20 @@ static GpStatus decode_image_icon(IStream* stream, REFCLSID clsid, GpImage **ima
 
 static GpStatus decode_image_bmp(IStream* stream, REFCLSID clsid, GpImage **image)
 {
-    return decode_image_wic(stream, &CLSID_WICBmpDecoder, image);
+    GpStatus status;
+    GpBitmap* bitmap;
+
+    status = decode_image_wic(stream, &CLSID_WICBmpDecoder, image);
+
+    bitmap = (GpBitmap*)*image;
+
+    if (status == Ok && bitmap->format == PixelFormat32bppARGB)
+    {
+        /* WIC supports bmp files with alpha, but gdiplus does not */
+        bitmap->format = PixelFormat32bppRGB;
+    }
+
+    return status;
 }
 
 static GpStatus decode_image_jpeg(IStream* stream, REFCLSID clsid, GpImage **image)




More information about the wine-cvs mailing list