用Python pillow 创建和保存GIF动画
在这篇文章中,我们将使用一个pillow库来创建和保存gif。
GIFs:图形交换格式(gif)是一种位图图像格式,由美国计算机科学家Steve Wilhite于1987年6月15日领导的在线服务提供商CompuServe的一个团队开发。
一个GIF文件通常存储一个图像,但该格式允许在一个文件中存储多个图像。该格式还有一些参数,可用于对图像进行排序,在短时间内显示每张图像,然后用下一张图像取代它。简单地说,GIF是一种移动图像。
Pillow: Pillow用于在python中进行图像处理。Pillow是在PIL(python图像库)的基础上开发的。PIL在Python 3中不被支持,所以我们使用了一个Pillow。
这个模块没有预装在Python中。所以要安装它,在命令行中执行以下命令。
pip install pillow
让我们创建一个gif的步骤:
第1步:首先我们导入我们对PIL模块的要求。
from PIL import Image, ImageDraw
第2步:在我们输入圆圈的数值后创建一个列表。(0,255,0)它是绿色的颜色代码,(255,0,0)是红色的颜色代码。
images = []
width = 200
center = width // 2
color_1 = (0,255, 0)
color_2 = (255, 0, 0)
max_radius = int(center * 1.5)
step = 8
第3步:用For循环来创建一个动画图像。第2行代码用来设置正方形的值,该正方形包含红色,其边缘大小为200。
for i in range(0, max_radius, step):
im = Image.new('RGB', (width, width), color_2)
draw = ImageDraw.Draw(im)
draw.ellipse((center - i, center - i,
center + i, center + i),
fill=color_1)
images.append(im)
第4步:保存gif图像。
images[0].save('pillow_imagedraw.gif',
save_all = True, append_images = images[1:],
optimize = False, duration = 10)
以下是完整的实现方案:
from PIL import Image, ImageDraw
images = []
width = 200
center = width // 2
color_1 = (0,255, 0)
color_2 = (255, 0, 0)
max_radius = int(center * 1.5)
step = 8
for i in range(0, max_radius, step):
im = Image.new('RGB', (width, width), color_2)
draw = ImageDraw.Draw(im)
draw.ellipse((center - i, center - i,
center + i, center + i),
fill = color_1)
images.append(im)
images[0].save('pillow_imagedraw.gif',
save_all = True, append_images = images[1:],
optimize = False, duration = 10)
输出: