X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e43747f624f2f9a19134b63d0201b7f24d71c81..6d99eb3e379fc5cdb835f9a87f92b612ec58dd1c:/wxPython/demo/ImageAlpha.py diff --git a/wxPython/demo/ImageAlpha.py b/wxPython/demo/ImageAlpha.py index cf1a7a2fd6..9613a8ce91 100644 --- a/wxPython/demo/ImageAlpha.py +++ b/wxPython/demo/ImageAlpha.py @@ -5,7 +5,7 @@ from Main import opj #---------------------------------------------------------------------- -msg = "This is some text that will appear behind the image..." +msg = "Some text will appear mixed in the image's shadow..." class TestPanel(wx.Panel): def __init__(self, parent, log): @@ -21,18 +21,35 @@ class TestPanel(wx.Panel): dc.Clear() dc.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD, True)) - dc.DrawText("Bitmap alpha blending (on wxMSW and wxMac)", - (25,25)) - + dc.DrawText("Bitmap alpha blending (on all ports but gtk+ 1.2)", + 25,25) + bmp = wx.Bitmap(opj('bitmaps/toucan.png')) - dc.DrawBitmap(bmp, (25,100), True) + if "gtk1" in wx.PlatformInfo: + # Try to make up for lack of alpha support in wxGTK (gtk+ + # 1.2) by converting the alpha blending into a + # transparency mask. + + # first convert to a wx.Image + img = bmp.ConvertToImage() + + # Then convert the alpha channel to a mask, specifying the + # threshold below which alpha will be made fully + # transparent + img.ConvertAlphaToMask(220) + + # convert back to a wx.Bitmap + bmp = img.ConvertToBitmap() + + + dc.DrawBitmap(bmp, 25,100, True) dc.SetFont(self.GetFont()) y = 75 for line in range(10): y += dc.GetCharHeight() + 5 - dc.DrawText(msg, (200, y)) - dc.DrawBitmap(bmp, (250,100), True) + dc.DrawText(msg, 200, y) + dc.DrawBitmap(bmp, 250,100, True) @@ -50,10 +67,13 @@ overview = """

Images with Alpha

wxMSW and wxMac now support alpha channels of supported image -types, and will properly blend that chennel when drawing a +types, and will properly blend that channel when drawing a bitmap. It is not supported yet on wxGTK, (if you would like to change that please submit a patch!) +

On wxGTK this demo turns the alpha channel into a 1-bit mask, so +yes, it looks like crap. Please help us fix it! + """