Tkinter отображает искаженное изображение

Я пытаюсь отобразить GIF с помощью Tkinter, но когда GIF загружается, это выглядит очень странно. Я вставил скриншоты оригинального GIF и GIF, отображаемого в Tkinter. Это происходит не с одним 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()

person dbarth    schedule 06.03.2019    source источник
comment
Кстати, вся гифка выглядит так, за исключением того, что некоторые гифки имеют 1 кадр или около того правильно выглядящей гифки.   -  person dbarth    schedule 06.03.2019
comment
Поддержка Tk анимированных GIF-файлов, по-видимому, в корне нарушена - она ​​работает правильно, только если каждый кадр имеет размер полного изображения, что является самым неэффективным способом представления анимации, которую только можно себе представить. (Правильный анимированный GIF включает только области, которые изменились в каждом кадре.) Существует некоторый код, который утверждает, что обходит это по адресу stackoverflow.com/questions/50904093/   -  person jasonharper    schedule 06.03.2019