我正在尝试创建一个纯红色16x16方形的wxImage。为此,我做了以下事情:
image = wx.EmptyImage(16, 16)
image.SetRGB(rect=wx.Rect(0,0,16,16), red=255, green=0, blue=0)
我正在尝试使用找到的SetRGB
函数的第二个版本here。
但是,我得到以下内容:
TypeError: Required argument 'x' (pos 2) not found
,似乎表明它正在尝试使用该函数的第一个版本。
我也尝试过:
image.SetRGB(wx.Rect(0,0,16,16), 255, 0, 0)
并得到了同样的错误。
有没有某种方法来调用我失踪的这个功能?我想我只是错误地调用了函数,但我不太确定如何修复它。
答案 0 :(得分:3)
这取决于您使用的wxPython
:
img = wx.EmptyImage(TILE_WIDTH, TILE_HEIGH)
img.SetRGBRect(wx.Rect(0, 0, TILE_WIDTH, TILE_HEIGH), 255, 0, 0)
bmp = wx.BitmapFromImage(img)
将适用于wxPython 3.0 / classic / MSW。你在链接中指的是wxPython 3.0 / Phoenix,这是一个不同的野兽。上面会解释翻译,而下面的行将起作用。
img.SetRGB(wx.Rect(0, 0, TILE_WIDTH, TILE_HEIGH), 255, 0, 0)
在两个平台上工作的东西(大概是你想要的):
bmp = wx.EmptyBitmapRGBA(TILE_WIDTH, TILE_HEIGH, 255, 0, 0, 255)
img = wx.ImageFromBitmap(bmp)