Ho cercato di riprodurre una gif animata utilizzando Tkinter.PhotoImage
, ma non ho riscontrato alcun successo. Visualizza l'immagine, ma non l'animazione. Quello che segue è il mio codice:Riproduci animazioni in GIF con Tkinter
root = Tkinter.Tk()
photo = Tkinter.PhotoImage(file = "path/to/image.gif")
label = Tkinter.Label(image = photo)
label.pack()
root.mainloop()
Visualizza l'immagine in una finestra e il gioco è fatto. Sto pensando che il problema abbia a che fare con lo Tkinter.Label
ma non ne sono sicuro. Ho cercato soluzioni ma tutti mi dicono di usare PIL (Python Imaging Library), ed è qualcosa che non voglio usare.
Con la risposta, ho creato un po 'di codice (che ancora non funziona ...), eccolo:
from Tkinter import *
def run_animation():
while True:
try:
global photo
global frame
global label
photo = PhotoImage(
file = photo_path,
format = "gif - {}".format(frame)
)
label.configure(image = nextframe)
frame = frame + 1
except Exception:
frame = 1
break
root = Tk()
photo_path = "https://stackoverflow.com/users/zinedine/downloads/091.gif"
photo = PhotoImage(
file = photo_path,
)
label = Label(
image = photo
)
animate = Button(
root,
text = "animate",
command = run_animation
)
label.pack()
animate.pack()
root.mainloop()
Grazie di tutto! :)
Si potrebbe verificare se ha qualcosa a che con l'essere attaccato ad un widget 'label' usandolo invece su un widget' Canvas' ('C. create_image (x, y, image = photo'). – martineau
Non so se sto facendo qualcosa di sbagliato con 'Canvas' ma ottengo solo l'angolo in basso a destra della mia immagine e sembra pixelato ... – Zizouz212
Prova ad ottenere funziona prima con un'immagine non animata, poi passa a quella animata successiva – martineau