我正在使用wxPythonPython中编写GUI应用程序,我想在静态控件(wx.StaticBitmap)中显示图像.

我可以使用wx.ImageFromStream从文件加载图像,这可以正常工作:

static_bitmap = wx.StaticBitmap(parent, wx.ID_ANY)
f = open("test.jpg", "rb")
image = wx.ImageFromStream(f)
bitmap = wx.BitmapFromImage(image)
static_bitmap.SetBitmap(bitmap)

但是,我真正希望能够做的是从内存中的数据创建图像.所以,如果我写

f = open("test.jpg", "rb")
data = f.read()

如何从数据创建wx.Image对象?


谢谢你的帮助!

解决方法:

您应该能够使用StringIO将缓冲区包装在内存文件对象中.

...
import StringIO

buf = open("test.jpg", "rb").read()
# buf = get_image_data()
sbuf = StringIO.StringIO(buf)

image = wx.ImageFromStream(sbuf)
...

buf可以替换为任何数据字符串.

标签: python, wxpython, wxwidgets

相关文章推荐

添加新评论,含*的栏目为必填