使用Pillow,可以轻松地生成GIF动态图,只需要将每一帧图像按照一定的顺序保存到一个列表中,然后使用Image.save()方法将列表中的图像保存为GIF文件即可。
以下是一个将多张图像合成为GIF动态图的示例:
from PIL import Image, ImageDraw
# 创建一个空的图像列表
frames = []
# 创建一系列图像并将其添加到列表中
for i in range(10):
# 创建一个新的图像
im = Image.new('RGB', (200, 200), (255, 255, 255))
# 在图像上绘制一个圆形
draw = ImageDraw.Draw(im)
draw.ellipse((i*10, i*10, 200-i*10, 200-i*10), fill=(255, 0, 0))
# 将图像添加到列表中
frames.append(im)
# 保存图像列表为GIF文件
frames[0].save('example.gif', save_all=True, append_images=frames[1:], duration=100, loop=0)
在此示例中,首先创建一个空的图像列表frames,然后创建一系列图像并将其添加到列表中。每张图像都是一个白色背景上的一个红色圆形,圆形的大小和位置随着循环变量i的变化而变化。然后,使用frames[0].save()方法将图像列表保存为GIF文件,其中save_all=True表示保存所有帧,append_images=frames[1:]表示将剩余的帧添加到第一帧后面,duration=100表示每帧的显示时间为100毫秒,loop=0表示无限循环。
最后,运行上述代码将生成一个名为example.gif的GIF动态图,其中圆形大小和位置随时间变化而变化。可以使用任何支持GIF格式的图像查看器来打开和查看生成的GIF动态图。