WxPython的Python图像对象

2024-06-26 13:57:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想在wxpython面板中显示python图像对象。在

我要实现的是使用python ImageGrab或autopy截图,并将其显示在wxpython面板中。我的截图程序每秒钟都在运行,所以没有必要为wx保存图像。在

import pyscreenshot as ImageGrab
imgobj = ImageGrab.grab()
print imgobj
# Convert into wximage
myWxImage = wx.EmptyImage( imgobj.size[0], imgobj.size[0] )
myWxImage.SetData( imgobj.convert( 'RGB' ).tostring())

输出

<Image.Image image mode=RGB size=1366x768 at 0x20B98F0> 
ValueError:Invalid data buffer size.

Tags: 对象图像imageimport程序面板sizewxpython
2条回答

没有完整的回溯很难判断,但我认为问题可能出在这个错误上:

myWxImage = wx.EmptyImage( imgobj.size[0], imgobj.size[0] )

应该是:

^{pr2}$

您还可以通过以下方式简化代码:

myWxImage = wx.ImageFromBuffer(imgobj.size[0], imgobj.size[1], imgobj.convert('RGB').tostring())

我想你的问题是你将图像宽度作为新高度传递给wx。。。在

顺便说一句,你可以用

myWxImage = wx.ImageFromBuffer( imgobj.size[0], imgobj.size[1], imgobj.tostring() )

相关问题 更多 >