用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)

输出:

用Python创建和保存GIF动画 - pillow

                                               本次分享到此结束,感谢大家的阅读! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蜜蜂vs码农

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值