【python】使用python中的pillow生成gif动态图

本文介绍如何使用Pillow库将多张静态图片合成为GIF动态图片。通过设置图片切换频率、播放次数等参数,可以轻松实现动图制作。

在之前的文章中,介绍了使用imageio生成gif动态图片,十分方便,简单,容易上手。

我发现pillow这个库也可以生成gif动态图片。

1.需求

使用pillow将一下4张图合成gif:

在这里插入图片描述

2.代码

# -*- coding: utf-8 -*-
"""
Created on Fri Nov  4 16:32:32 2022

@author: augustqi
"""


from PIL import Image
import os

# 静态图片存放路径,注意路径,否则找不到路径
imgs_path = "imgs"
# 遍历imgs_path中的图片
file_list = os.listdir(imgs_path)
# 打开第一张图片
img0 = Image.open(os.path.join(imgs_path, file_list[0]))

# 转化的GIF图片名称
save_name_gif = "generate_pil.gif" 

# fps 就是图片切换的频率,越大越快。也可以使用duration参数来控制,表示每帧间隔,单位s
# fps = 1
duratio = 20000

# 播放次数,0表示循环播放,1表示播放1次,2表示播放2次,以此类推
loop = 0


# 存放图片的列表
pics_list = []

# 遍历filenames,使用imageio读取后存入pics_list
for file in file_list[1:]:
    im = Image.open(os.path.join(imgs_path, file))
    pics_list.append(im) 

# 生成gif        
img0.save(save_name_gif, save_all=True, append_images=pics_list, duratio=duratio, loop=0)  

效果图:

在这里插入图片描述

在运行代码的过程中,我发现duratio的大小无法控制gif动图的播放速度,目前还没找到原因。。。(找到原因再更新)播放的太快了,我已经晕了。。。

参考资料:

https://blog.csdn.net/qq_42886289/article/details/115911308

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

机器不学习我学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值