PythonGIF显示,但很难看
这是代码,真的显示gif,但是很难看。。。我试着使用PIL,但还是同一个bug。按照2个代码(第一个是我自己的,第二个是网络)和打印: gif文件(是要测试的随机文件,很可爱吧?kk): 请参阅屏幕截图以了解: 第1代码: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
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,而是为什么他会像上面的图片一样被损坏。。。