У меня проблема с моим кодом, и я относительно новичок в использовании PIL library
. Мой код работает, но GIF очень плохого качества, и я не совсем уверен, как это исправить. Мой код ниже:
import tkinter
from tkinter import *
from PIL import Image, ImageTk
window = tkinter.Tk()
window.title("****** Interface")
window.configure(background="white")
# Photo
class MyLabel(tkinter.Label):
def __init__(self, master, filename):
im = Image.open(filename)
seq = []
try:
while 1:
seq.append(im.resize((480, 270)).copy())
im.seek(len(seq)) # skip to next frame
except EOFError:
pass
try:
self.delay = im.info['duration']
except KeyError:
self.delay = 45
first = seq[0].convert('RGB')
self.frames = [ImageTk.PhotoImage(first)]
tkinter.Label.__init__(self, master, image=self.frames[0])
temp = seq[0].convert('RGB')
for image in seq[1:]:
frame = image.convert('RGB')
temp.paste(frame)
self.frames.append(ImageTk.PhotoImage(temp))
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)
lbl = MyLabel(window, '*****.gif')
lbl.pack(anchor="center")
window.mainloop()
Я взглянул на решение, предоставленное по ссылке Отображение анимированных GIF-файлов в Tkinter с использованием PIL , однако я не смог заставить их работать. Пожалуйста, помогите.