2017-10-13 41 views
0

当我创建一个wx.Staticbitmap并放入其中的位图时,它似乎显示RBG = 240,240,240透明(应该是浅灰色)的颜色。 要解决这个问题,我将wx.Staticbitmap的背景颜色也设置为240,240,240。wxPython wx.StaticBitmap颜色240,240,240

代码如下所示:

 self.image_container = wx.StaticBitmap(parent, id=-1, size=(self.x, self.y), pos=(0,0)) 
    self.image_container.SetBackgroundColour(wx.Colour(240, 240, 240)) 

    self.image_container.SetBitmap(bmp) 

    self.image_container.Update() 
    self.image_container.Refresh() 

位图具有24位的深度。我可以得到wx.StaticBitmap错误的样式,但我无法弄清楚。它似乎是一个错误。

Python版本是:2.7.13

蜡质的版本是:wxPython的==在Windows 10

回答

0

4.0.0b2

奔跑这是回来时常用的Windows API的旧功能使用的图像格式不支持透明度。目的是为工具栏和菜单图标等提供一种方式,使其具有透明区域,默认情况下,它们使用浅灰色来指示透明区域的位置,因为那是当时的默认窗口背景颜色。

其他解决方法是可能的。在将图像传递给staticbitmap之前,可以在内存中对图像进行调整,但将图像文件本身修复可能最容易。例如,您可以编辑图像文件并将240灰度像素更改为241或其他内容。或者您可以将图像文件转换为支持透明度的其他格式,该格式应该绕过自动透明度设置。