14.Pillow生成GIF动态图
GIF(Graphics Interchange Format,图形交换格式)是一种“位图”图像格式,它以.gif
作为图像的扩展名。GIF 图片非常适合在互联网中使用,这是因为它采用了图像预压缩技术,该技术的应用,在一定程度上减少了图像传播、加载所消耗的时间。
与其他格式的图片相比,GIF 还有一项非常重要的应用,那就是生成动态图。我们知道,Pillow 能够处理多种图像格式,包括 GIF 格式,它可以将静态格式图片(png、jpg)合成为 GIF 动态图。
注意:Pillow 总是以灰度模式(L)或调色板模式(P)来读取 GIF 文件。
下面看一组示例:如何使用 Pillow 生成 GiF 动态图。(示例中所用图片素材,点击链接下载,提取码:n1v2)
- import os
- import random
- from PIL import Image
- def png_to_gif(png_path,gif_name):
- """png合成gif图像"""
- frames = []
- # 返回文件夹内的所有静态图的列表
- png_files = os.listdir(png_path)
- # 打印返回的列表
- print(png_files)
- # 读取文件内的静态图
- for frame_id in range(1,len(png_files)+1):
- frame = Image.open(os.path.join(png_path,'image%d.png'%frame_id))
- frames.append(frame)
- # 以第一张图片作为开始,将后续5张图片合并成 gif 动态图
- # 参数说明:
- # save_all 保存图像;transparency 设置透明背景色;duration 单位毫秒,动画持续时间,
- # loop=0 无限循环;disposal=2 恢复原背景颜色。参数详细说明,请参阅官方文档,网址见文章末尾处。
- frames[0].save(gif_name,save_all=True,append_images=frames[1:],transparency=0,duration=2000,loop=0,disposal=2)
- #调用函数,传入对应的参数
- png_to_gif("C:/Users/Administrator/Desktop/image",'C:/Users/Administrator/Desktop/t.gif')
动态效果图,如下所示:

想要了解关于 Pillow 的更多的知识,请参考官方文档:点击前往
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异