这是将执行此操作的wxPython代码…
import wxfrom PIL import ImageSIZE = (640, 480)def get_image(): # Put your pre here to return a PIL image from the camera. return Image.new('L', SIZE)def pil_to_wx(image): width, height = image.size buffer = image.convert('RGB').tostring() bitmap = wx.BitmapFromBuffer(width, height, buffer) return bitmapclass Panel(wx.Panel): def __init__(self, parent): super(Panel, self).__init__(parent, -1) self.SetSize(SIZE) self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM) self.Bind(wx.EVT_PAINT, self.on_paint) self.update() def update(self): self.Refresh() self.Update() wx.CallLater(15, self.update) def create_bitmap(self): image = get_image() bitmap = pil_to_wx(image) return bitmap def on_paint(self, event): bitmap = self.create_bitmap() dc = wx.AutoBufferedPaintDC(self) dc.DrawBitmap(bitmap, 0, 0)class frame(wx.frame): def __init__(self): style = wx.DEFAULT_frame_STYLE & ~wx.RESIZE_BORDER & ~wx.MAXIMIZE_BOX super(frame, self).__init__(None, -1, 'Camera Viewer', style=style) panel = Panel(self) self.Fit()def main(): app = wx.PySimpleApp() frame = frame() frame.Center() frame.Show() app.MainLoop()if __name__ == '__main__': main()


