我所知道的两种方法:
一、用pyglet模块
- # load and show an animated gif file using module pyglet
- # download module pyglet from: http://www.pyglet.org/download.html
- # the animated dinosaur-07.gif file is in the public domain
- # download from http://www.gifanimations.com
- # tested with Python2.5 and pyglet1.1a2 by vegaseat 22apr2008
-
- import pyglet
-
- # pick an animated gif file you have in the working directory
- ag_file = "0022.gif"
- animation = pyglet.resource.animation(ag_file)
- sprite = pyglet.sprite.Sprite(animation)
-
- # create a window and set it to the image size
- win = pyglet.window.Window(width=sprite.width, height=sprite.height)
-
- # set window background color = r, g, b, alpha
- # each value goes from 0.0 to 1.0
- green = 0, 1, 0, 1
- pyglet.gl.glClearColor(*green)
-
- @win.event
- def on_draw():
- win.clear()
- sprite.draw()
-
- pyglet.app.run()
二、用wxPython
- import wx
- from wx.animate import GIFAnimationCtrl
-
- from Main import opj
-
- GIFNames = [
- "bitmaps/ani-bttrfly.gif",
- "bitmaps/ani-avtr.gif",
- "bitmaps/ani-phone.gif",
- # "bitmaps/ani-walker.gif",
- "bitmaps/ani-man.gif",
- "bitmaps/ani-bookworm.gif",
- "bitmaps/ani-hooked.gif",
- ]
-
- #----------------------------------------------------------------------
-
- class TestPanel(wx.Panel):
- def __init__(self, parent, log):
- self.log = log
- wx.Panel.__init__(self, parent, -1)
-
- sizer = wx.FlexGridSizer(2,3,5,5)
- for name in GIFNames:
- ani = GIFAnimationCtrl(self, -1, opj(name))
- ani.GetPlayer().UseBackgroundColour(True)
- ani.Play()
- sizer.Add(ani, 0, wx.ALL, 10)
-
- border = wx.BoxSizer()
- border.Add(sizer, 1, wx.EXPAND|wx.ALL, 20)
- self.SetSizer(border)
-
-
- #----------------------------------------------------------------------
-
- def runTest(frame, nb, log):
- win = TestPanel(nb, log)
- return win
-
- #----------------------------------------------------------------------
-
-
-
- overview = """<html><body>
- <h2><center>wx.animate.GIFAnimationCtrl</center></h2>
-
- wx.animate.GIFAnimationCtrl is like a wx.StaticBitmap but is able to
- display an animation by extracing frames from a multi-images GIF file.
-
- </body></html>
- """
-
-
-
- if __name__ == '__main__':
- import sys,os
- import run
- run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
有其他方法,请大家留言
|