Python wxImage在win32上没有alpha通道

Python wxImage在win32上没有alpha通道,python,image,wxpython,Python,Image,Wxpython,我有一个用于绘制渐变文本的函数,它在mac上非常有效,但在windows上无法正常工作 我将其放在一个可运行的示例中: import wx def get_gradient_text_solid_bg(text,point_size,top_colour,bottom_colour,bg_colour_tuple): dc=wx.MemoryDC() f= dc.GetFont() f.SetPointSize(point_size) dc.SetFont(f)

我有一个用于绘制渐变文本的函数,它在mac上非常有效,但在windows上无法正常工作

我将其放在一个可运行的示例中:

import wx

def get_gradient_text_solid_bg(text,point_size,top_colour,bottom_colour,bg_colour_tuple):
    dc=wx.MemoryDC()
    f= dc.GetFont()
    f.SetPointSize(point_size)
    dc.SetFont(f)
    dc.SelectObject(wx.EmptyBitmap(0,0))
    w,h= dc.GetTextExtent(text)
    template_bmp= wx.EmptyBitmap(w,h)
    dc.SelectObject(template_bmp)
    dc.SetBackground(wx.Brush(wx.WHITE))
    dc.Clear()
    dc.DrawText(text,0,0)
    dc.SelectObject(wx.NullBitmap)
    template_image= template_bmp.ConvertToImage()
    template_image.ConvertColourToAlpha(*bg_colour_tuple)
    template_bmp= template_image.ConvertToBitmap()
    text_bmp= wx.EmptyBitmap(w,h)
    dc.SelectObject(text_bmp)
    dc.GradientFillLinear((0,0,w,h),top_colour,bottom_colour,wx.SOUTH)
    dc.DrawBitmap(template_bmp,0,0)
    dc.SelectObject(wx.NullBitmap)
    return text_bmp

class Frame(wx.Frame):
    def __init__(self,*args,**kwargs):
        wx.Frame.__init__(self,*args,**kwargs)
        panel= wx.Panel(self)
        bg_colour= (237,237,237)
        panel.SetBackgroundColour(wx.Colour(*bg_colour))
        wx.StaticBitmap(panel,bitmap=get_gradient_text_solid_bg("Testing",30,(255,80,80),(255,215,215),bg_colour))
        self.Show()

if __name__ == "__main__":
    app= wx.App(False)
    Frame(None)
    app.MainLoop()
我不确定它为什么不起作用,我认为这是因为wxImage在windows上似乎没有alpha通道,但你可以在文本中看到一些红色,所以我认为图像边缘(抗锯齿部分)一定有alpha通道那么这可能是windows上的
转换颜色到Alpha
的问题?我怎样才能使它在windows上显示相同


wxPython用户列表中有几个关于此主题的线程。以下是可能与您相关的信息。还有更多信息要告诉你。

在罗宾的帮助下,我找到了解决办法


这是一个带有C++的bug,我在WxPython bug跟踪器上创建了一个跟踪器,但是一个工作是把比特深度设置为24代码> TeXYBMP= Wx。EmptyBitmap(W,H,24)< /Calp>< /P>嘿迈克谢谢你的回复,还不完全确定如何在Windows上修复这个问题。我认为这与图像中的alpha无关,而是

convertcolortoalpha
没有将alpha放入角色主体中的问题。你会推荐使用不同于其他模块的DC吗?+1顺便说一句,这些链接非常有用,帮助我解决了另一个问题