Při hledání "pil gif" na googlu v archivu anglivké konference python, jsem narazil na jeden kod, jehož upravou jsem získal toto. Funguje to zatím zpola tak, jak bych chtěl, některé gify, ketré se jen překrývají s průhledností, se zobrazují špatně:
# -*- coding: utf-8 -*-
# The Python Imaging Library
# $Id: player.py 2134 2004-10-06 08:55:20Z fredrik $
# modified by geon
from Tkinter import *
import Image, ImageTk
class gif():
def __init__(self, master, im):
# vse si zapamatujeme
self.master=master
self.im = im
self.image = ImageTk.PhotoImage(im)
# zobrazení prvního framu z gifu
# ve vasem programu se bude menit hlavne asi toto
Label(self.master, image=self.image, bd=0).pack()
# zjisteni prodlevy mezi framy
try:
self.duration = im.info["duration"]
except KeyError:
self.duration = 100
# aktualizace zobrazeni
self.master.update_idletasks()
# zavolani funkce next() po uplynuti prodlevy
self.master.after(self.duration, self.next)
def next(self):
try:
# najdeme dalsi frame
self.im.seek(self.im.tell() + 1)
except EOFError:
# pokud dojdeme na konec, zaciname odzacatku
self.im.seek(0)
self.image.paste(self.im)
self.master.update_idletasks()
self.master.after(self.duration, self.next)
root=Tk()
obr=Image.open("banner_c.gif")
gif(root, obr)
root.mainloop()
Originál: http://effbot.python-hosting.com/file/pil/Scripts/player.py