Tkinter帆布忽悠

我正在使用此代码(以10Hz)将小的黑白视频帧绘制到Tkinter画布上


self.image.buf = bytearray(header.width * header.height);

self.image.buf[:] = image

self.image.im = Image.frombuffer("L", (header.width, header.height), self.image.buf).resize((320, 240)).transpose(Image.ROTATE_180)

self.image.tkimage = ImageTk.PhotoImage(self.image.im)

if (self.image.id): self.image.delete(self.image.id);

self.image.id = self.image.create_image((0, 0), image=self.image.tkimage, anchor=NW)

每次绘制框架时,小部件都会闪烁。Tk画布不是应该被双重缓冲吗?我该怎么做才能避免这种情况?


千巷猫影
浏览 265回答 3
3回答

aluckdog

所以我想出了问题-似乎您必须从运行tk的同一线程创建tkimage,否则将发生不良情况。感谢任何看过这个的人!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python