前面在写关于VPython的文章的时候,我考虑了一下如何把VPython的动作记录下来,存为GIF动画再放到博客上来.
首先,在维基百科找到关于GIF文件格式的描述, 由于该部分占用篇幅太多,我就不贴出来了,大家可以查看这里:
http://en.wikipedia.org/wiki/Graphics_Interchange_Format
有了上面的信息,就可以编写Python程序了,PIL里面有个类ImageGrab可以轻易地截取屏幕.另外,python的写文件时,可以直接写入字符串和十六进制数,非常方便.以下是整个程序源代码:
# -*- coding: cp936 -*-
import ImageGrab # from PIL
import time
import string
from PIL import Image, ImageChops
from PIL.GifImagePlugin import getheader, getdata
import os
import numpy as np
def intToBin(i):
""" 把整型数转换为双字节 """
# 先分成两部分,高8位和低8位
i1 = i % 256
i2 = int( i/256)
# 合成小端对齐的字符串
return chr(i1) + chr(i2)
def getheaderAnim(im):
""" 生成动画文件头 """
bb = "GIF89a"