我设置了wxPanel的形状,但是有很多锯齿状的边缘。有没有办法解决这些问题?
在wx.Frame内部,我从黑白.png图像设置形状
mask = wx.Image('Resources/Images/Window/window_alpha_map.png')
mask.ConvertAlphaToMask()
shape = mask.ConvertToBitmap()
shape.SetMask(wx.Mask(shape, wx.BLACK))
self.SetShape(wx.RegionFromBitmap(shape))
在wxPanel内部,我在eraseBackground中设置图像
def onEraseBackground(self, event):
dc = event.GetDC()
if not dc:
dc = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
dc.SetClippingRect(rect)
dc.Clear()
background = wx.Image('Resources/Images/Window/window_background.png')
bmp = background.ConvertToBitmap()
dc.DrawBitmap(bmp, 0, 0)
以下是我所谈论的一些示例:http://clfu.se/PZn3 http://clfu.se/uE4
有没有办法在wxPython中平滑这些,甚至在我缺少的photoshop中的技巧?
感谢任何帮助
答案 0 :(得分:1)
你可能最好只使用GraphicsContext小部件绘制图像,因为它支持消除锯齿:
wxPython还允许通过Cairo绘图,它也支持抗锯齿:
最后,你还可以看看FloatCanvas: