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

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

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

1.需求

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

【python】使用python中的pillow生成gif动态图_第1张图片

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)  

效果图:

【python】使用python中的pillow生成gif动态图_第2张图片

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

参考资料:

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

你可能感兴趣的:(python,python,pillow,开发语言)