]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed wxImage->wxBitmap conversion for images with alpha channel
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 16 Aug 2004 12:31:42 +0000 (12:31 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 16 Aug 2004 12:31:42 +0000 (12:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/bitmap.cpp
src/gtk1/bitmap.cpp

index de3d7c1f67d9cabe7d2a61c6206deb7d8a305442..2cb613a8fe911eafe9bedb324b8dd0ddeab70a1b 100644 (file)
@@ -527,13 +527,18 @@ wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight,
     return bmp; 
 }
 
-bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
+bool wxBitmap::CreateFromImage( const wxImage& img, int depth )
 {
     UnRef();
 
-    wxCHECK_MSG( image.Ok(), FALSE, wxT("invalid image") )
+    wxCHECK_MSG( img.Ok(), FALSE, wxT("invalid image") )
     wxCHECK_MSG( depth == -1 || depth == 1, FALSE, wxT("invalid bitmap depth") )
 
+    // NB: wxGTK doesn't yet support alpha channel in bitmaps. The best we can
+    //     do is to convert alpha channel to mask, if it is present:
+    wxImage image(img);
+    image.ConvertAlphaToMask();
+
     int width = image.GetWidth();
     int height = image.GetHeight();
 
index de3d7c1f67d9cabe7d2a61c6206deb7d8a305442..2cb613a8fe911eafe9bedb324b8dd0ddeab70a1b 100644 (file)
@@ -527,13 +527,18 @@ wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight,
     return bmp; 
 }
 
-bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
+bool wxBitmap::CreateFromImage( const wxImage& img, int depth )
 {
     UnRef();
 
-    wxCHECK_MSG( image.Ok(), FALSE, wxT("invalid image") )
+    wxCHECK_MSG( img.Ok(), FALSE, wxT("invalid image") )
     wxCHECK_MSG( depth == -1 || depth == 1, FALSE, wxT("invalid bitmap depth") )
 
+    // NB: wxGTK doesn't yet support alpha channel in bitmaps. The best we can
+    //     do is to convert alpha channel to mask, if it is present:
+    wxImage image(img);
+    image.ConvertAlphaToMask();
+
     int width = image.GetWidth();
     int height = image.GetHeight();