Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 面板中的抗锯齿图像_Python_Wxpython_Wxwidgets - Fatal编程技术网

Python 面板中的抗锯齿图像

Python 面板中的抗锯齿图像,python,wxpython,wxwidgets,Python,Wxpython,Wxwidgets,我正在设置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

我正在设置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内部,我将图像设置为背景

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)
以下是我所说的一些例子:

有没有办法在wxPython中平滑这些,或者甚至是在photoshop中我错过的一个技巧


非常感谢您的帮助

您最好使用支持消除混叠的GraphicsContext小部件绘制图像:

wxPython还允许通过Cairo进行绘图,Cairo还支持抗锯齿:

最后,您还可以看看浮动画布: