经过 1 周的不断失败后,我仍然无法完成一项简单的任务:加载一个带有 alpha 通道或白色背景的 png(在下面的示例中),并让它在 wx.StaticBitmap 中保持其透明度。
稍后我需要在 wx.panel 中使用它。它应该保持这样或类似的状态。
这是我的方法之一(白色背景):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.loc = wx.Image("intro/image.png",wx.BITMAP_TYPE_PNG).ConvertToBitmap()
z = wx.Mask(self.loc, wx.WHITE)
self.loc.SetMask(z)
self.locopic = wx.StaticBitmap(self, -1, self.loc, (0, 0))
我读了很多关于这个话题的文章。我很垃圾。对不起。我想我在这里错过了一些明显的东西。wx.Mask ,透明图片
更新:
通过 WorkinWithImages中的示例,我设法做到了这一点:
import ImageConversions
...
puFilename = "intro/imagealpha.png"
pilImage = Image.open( puFilename )
pilImageWithAlpha = ImageConversions.WxImageFromPilImage( pilImage, createAlpha=True )
self.puWxBitmap = pilImageWithAlpha.ConvertToBitmap()
self.locopic = wx.StaticBitmap(self, -1, self.puWxBitmap)
这是从带有 alpha 通道的 PNG 创建透明的 wx.image,但是在 wx.StaticBitmap 中,透明度应该是丑陋的黑色。这让我很生气!!!请帮忙!
如果我能设法在 wx.panel 中在正确的位置显示具有透明度的图像谢谢社区!