【问题标题】:Tkinter displaying distorted imageTkinter 显示扭曲的图像
【发布时间】:2019-07-27 13:51:32
【问题描述】:

我正在尝试使用 Tkinter 显示 gif,但是当 gif 加载时它看起来很奇怪。我已经粘贴了原始 gif 和 Tkinter 中显示的 gif 的屏幕截图。这不会只发生在一个 gif 上,而是我使用的每一个 gif。

Gif 中的原始帧:

在 tkinter 中看到的帧:

代码如下:

from Tkinter import *
import time as t

root = Tk()

frames = []
i = 0

while True:
    try:
        frames.append(PhotoImage(file='display.gif',format='gif -index %i' %(i)))
        i += 1
    except  TclError:
        break


def update(ind):
    if ind >= len(frames):
        ind = 0
    frame = frames[ind]
    ind += 1
    label.configure(image=frame)
    root.after(100, update, ind)

label = Label(root)
label.pack()
root.after(0,update,0)
root.mainloop()

【问题讨论】:

  • 顺便说一下,整个 gif 看起来像这样,除了一些 gif 有 1 帧左右的正确外观 gif。
  • Tk 对动画 GIF 的支持似乎从根本上被破坏了——它只有在每一帧都是完整图像的大小时才能正常工作,这是可以想象到的最低效的动画表示方式。 (一个适当的动画 GIF 只包括在每一帧中发生变化的区域。)有一些代码声称可以解决这个问题stackoverflow.com/questions/50904093/…

标签: python tkinter gif


【解决方案1】:

试试 pil 模块。它有 tkinter 支持,我在过去的项目中使用过它。它有更好的图像/视频/gif 支持。去寻找一个很好的教程。

【讨论】:

猜你喜欢
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 1970-01-01
  • 2015-08-02
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多