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
อย่างไรก็ตาม GIF ทั้งหมดจะมีลักษณะเช่นนี้ ยกเว้นบาง GIF ที่มี GIF ที่ดูถูกต้องประมาณ 1 เฟรม   -  person dbarth    schedule 06.03.2019
comment
การสนับสนุน GIF แบบเคลื่อนไหวของ Tk ดูเหมือนจะค่อนข้างใช้งานไม่ได้โดยพื้นฐาน โดยจะใช้งานได้ก็ต่อเมื่อแต่ละเฟรมมีขนาดเท่ากับภาพเต็ม ซึ่งเป็นวิธีที่ไม่มีประสิทธิภาพมากที่สุดในการแสดงภาพเคลื่อนไหวเท่าที่จะจินตนาการได้ (GIF แบบเคลื่อนไหวที่เหมาะสมจะรวมเฉพาะพื้นที่ที่เปลี่ยนแปลงในแต่ละเฟรม) มีโค้ดบางส่วนที่อ้างว่าสามารถแก้ไขปัญหานี้ได้ที่ stackoverflow.com/questions/50904093/   -  person jasonharper    schedule 06.03.2019