Tkinter快速图像显示?

时间:2015-12-31 06:52:58

标签: python tkinter

我正在使用基本的Tkinter图像查看器。在摆弄了大量代码后,我有两行,这取决于触发刷新的操作是执行时间的50-95%。

self.photo = ImageTk.PhotoImage(resized)
self.main_image.config(image=self.photo)

是否有更快的方式在Tkinter中显示PIL / Pillow图像?

1 个答案:

答案 0 :(得分:1)

我建议您测试您所关注的4000x4000图像(这是4K显示器分辨率的两倍)。使用Google高级搜索查找此类图像,或使用照片/图像编辑器平铺您已有的图像。由于我不认为很多人会将4K(或更好)的显示器连接到低端计算机,因此您可以测试缩小大图像和简单显示它之间的区别,因此如果大多数工作是在调整图像大小时,你不必担心这部分。

接下来,测试您发布的两条线的每条线的个人表现。您可以尝试实现某种智能预缓存,许多程序都会这样做:调整大小并在用户查看当前照片时创建下一张照片,然后当用户转到下一张图像时,程序所要做的就是重新配置self.main_image。您可以在标准的Windows照片查看器中看到这种一般策略,它可以立即响应正常使用情况,但如果您浏览太快或切换浏览方向,可能会有明显的延迟。

另请询问您的目标用户群他们使用的是哪种机器以及他们的图片有多大。请记住合理的#34;建议的最低规格"是可以接受的。

最重要的是,请记住,Python的重点是清晰,简洁,可读的代码。如果你为了性能而不得不抛弃这些好处,你也可以使用一种更强调性能的语言,比如C.确保这些性能改进是实际需要,而不仅仅是"我的程序可能会滞后!我必须解决这个问题。"