PythonGIF显示,但很难看

PythonGIF显示,但很难看,python,python-3.x,tkinter,python-imaging-library,Python,Python 3.x,Tkinter,Python Imaging Library,这是代码,真的显示gif,但是很难看。。。我试着使用PIL,但还是同一个bug。按照2个代码(第一个是我自己的,第二个是网络)和打印: gif文件(是要测试的随机文件,很可爱吧?kk): 请参阅屏幕截图以了解: 第1代码: import tkinter as tk from tkinter import Canvas, PhotoImage x = 0 def animate(self): global x if x == 32: x = 0 e

这是代码,真的显示gif,但是很难看。。。我试着使用PIL,但还是同一个bug。按照2个代码(第一个是我自己的,第二个是网络)和打印:

gif文件(是要测试的随机文件,很可爱吧?kk):

请参阅屏幕截图以了解:

第1代码:

import tkinter as tk
from tkinter import Canvas, PhotoImage

x = 0

def animate(self):
    global x
    if x == 32:
        x = 0
    else:
        self.pic["format"] = "gif -index " + str(x)
        self.label1["image"] = self.pic
        x += 1

    print(x)

    self.after(50, lambda: animate(self))


class run(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        self.pic = PhotoImage(file="/home/arnaldo/Desktop/b.gif", format = "gif -index 0")

        self.label1 = tk.Label(width=350, height=233)
        self.label1.pack(expand="yes", fill="both")

        animate(self)

run().mainloop()
我在网上找到的第二个代码:

from tkinter import * 
from PIL import Image, ImageTk


class MyLabel(Label):
    def __init__(self, master, filename):
        im = Image.open(filename)
        seq =  []
        try:
            while 1:
                seq.append(im.copy())
                im.seek(len(seq)) # skip to next frame
        except EOFError:
            pass # we're done

        try:
            self.delay = im.info['duration']
        except KeyError:
            self.delay = 100

        first = seq[0].convert('RGBA')
        self.frames = [ImageTk.PhotoImage(first)]

        Label.__init__(self, master, image=self.frames[0])

        temp = seq[0]
        for image in seq[1:]:
            temp.paste(image)
            frame = temp.convert('RGBA')
            self.frames.append(ImageTk.PhotoImage(frame))

        self.idx = 0

        self.cancel = self.after(self.delay, self.play)

    def play(self):
        self.config(image=self.frames[self.idx])
        self.idx += 1
        if self.idx == len(self.frames):
            self.idx = 0
        self.cancel = self.after(self.delay, self.play)        


root = Tk()
anim = MyLabel(root, '/home/arnaldo/Desktop/a.gif')
anim.pack()

def stop_it():
    anim.after_cancel(anim.cancel)

Button(root, text='stop', command=stop_it).pack()

root.mainloop()

两者都运行uglys gifs…

我们在哪里可以找到您正在使用的实际图像?你电脑上的那一个:
/home/arnaldo/Desktop/b.gif
,可能问题出在那个文件里。in:我编辑了这篇文章并更新了礼物顺便问一下,你有没有在谷歌上搜索
tkinter display animated gif
?是的,我尝试了所有的方法,找到的所有代码都是一样的,gif已经损坏了,但正常的gif不是问题所在。我的问题不是如何运行gif,而是为什么他会像上面的图片一样被损坏。。。