wxPython 显示内存中的图片数据
为了用wxpython显示内存中的图片数据,我纠结了一天。主要是错在了函数参数的数据格式上面。
1、我用的是python3.4
2、下面是具体的代码
import wx import urllib.request import re import binascii import ctypes from ctypes import * import io from io import BytesIO class Frame(wx.Frame): """Frame class that displays an image.""" def __init__(self, image, parent=None, id=-1, pos=wx.DefaultPosition, title='Hello, wxPython!'): """Create a Frame instance and display image.""" temp = image.ConvertToBitmap() size = temp.GetWidth(), temp.GetHeight() wx.Frame.__init__(self, parent, id, title, pos, size) panel = wx.Panel(self) self.bmp = wx.StaticBitmap(parent=panel, bitmap=temp) self.SetClientSize(size) class App(wx.App): """Application class.""" def OnInit(self): # create a image object with open('img_encode.txt', 'r') as f: #image = wx.Image(f) data1 = f.read() byteTest = bytes(data1,"utf8") HexJPG = binascii.a2b_hex(byteTest) file2 = BytesIO(HexJPG) imageNet2 = wx.ImageFromStream(file2) self.frame = Frame(imageNet2) self.frame.Show() self.SetTopWindow(self.frame) return True def main(): app = App() app.MainLoop() if __name__ == '__main__': main()
3、我主要是错在BytesIO的数据格式上。注意这个函数的数据格式是b"\xff\d8\ff".如下图说明: