tkinter想实现动态图出现问题
from tkinter import *from PIL import Image, ImageTk, ImageSequence
import time
root = Tk()
root.geometry("300x300")
canvas = Canvas(root,width=300, height=300,bg='white')
canvas.pack()
#分解gif并逐帧显示
def pick(event):
global a,flag
while 1:
im = Image.open('1.gif')
# GIF图片流的迭代器
iter = ImageSequence.Iterator(im)
#frame就是gif的每一帧,转换一下格式就能显示了
for frame in iter:
pic=ImageTk.PhotoImage(frame)
canvas.create_image((100,150), image=pic)
time.sleep(0.1)
root.update_idletasks() #刷新
root.update()
canvas.bind("<Enter>",pick) #这个事件是鼠标进入组件,用什么事件不重要,这里只是演示
root.mainloop()
错误警告:Exception in Tkinter callback
Traceback (most recent call last):
File "C:UsersGaoXXAppDataLocalProgramsPythonPython38libtkinter\__init__.py", line 1883, in __call__
return self.func(*args)
File "E:/python/python2/2.py", line 21, in pick
pic=ImageTk.PhotoImage(frame)
File "C:UsersGaoXXAppDataLocalProgramsPythonPython38libsite-packagesPILImageTk.py", line 112, in __init__
self.__photo = tkinter.PhotoImage(**kw)
File "C:UsersGaoXXAppDataLocalProgramsPythonPython38libtkinter\__init__.py", line 4061, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:UsersGaoXXAppDataLocalProgramsPythonPython38libtkinter\__init__.py", line 3994, in __init__
raise RuntimeError('Too early to create image')
RuntimeError: Too early to create image
Exception ignored in: Traceback (most recent call last):
File "C:UsersGaoXXAppDataLocalProgramsPythonPython38libsite-packagesPILImageTk.py", line 118, in __del__
name = self.__photo.name
AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'
Process finished with exit code 0
看不太懂求救援
回答:
请问这个问题解决了嘛?
以上是 tkinter想实现动态图出现问题 的全部内容, 来源链接: utcz.com/a/157729.html