使用重载方法创建 wxImage
Creating a wxImage using overloaded methods
我正在尝试创建一个 wxImage,它只是一个纯红色的 16x16 正方形。为此,我做了以下工作:
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)
得到同样的错误。
有没有某种方法可以调用我缺少的函数?我想我只是错误地调用了函数,但我不太确定如何修复它。
这取决于您使用的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 上工作。您在 link 中指的是 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)
我正在尝试创建一个 wxImage,它只是一个纯红色的 16x16 正方形。为此,我做了以下工作:
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)
得到同样的错误。
有没有某种方法可以调用我缺少的函数?我想我只是错误地调用了函数,但我不太确定如何修复它。
这取决于您使用的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 上工作。您在 link 中指的是 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)