tkinter想实现动态图出现问题

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

回到顶部