当前位置:首页>java>Python编程小技巧--定制你的gif动图

Python编程小技巧--定制你的gif动图

  • 2026-09-14 15:11:52
Python编程小技巧--定制你的gif动图
用Python制作一个gif动图简直不要太简单!
先看最终效果
第一步,准备好用于制作动图的素材,比如下面这三张,全部放在同一个文件夹下
       
第二步,运行下面的代码就完成了(代码要放在和图片相同的文件夹下,另外所有图片最好尺寸一致,否则可能显示异常)
from PIL import Imageimport glob# 1. 获取所有图片文件(假设都在当前目录,格式为 png 或 jpg)image_files = sorted(glob.glob("*.jpg"))  # 也可以改成 "*.png" 或组合如 ["*.png", "*.jpg"]# 如果需要混合格式,可以这样:# image_files = sorted(glob.glob("*.png") + glob.glob("*.jpg"))# 2. 打开所有图片images = [Image.open(f) for f in image_files]# 3. 保存为 GIF(第一张作为基础,其余 append)images[0].save(    "output.gif",    save_all=True,    append_images=images[1:],    duration=500,   # 每帧显示时间(毫秒),500 = 0.5 秒    loop=0          # 循环次数,0 表示无限循环)print("GIF 已生成:output.gif")
核心原理是利用 Python 的 Pillow(PIL)库,将多张静态图片按顺序合并成一个 GIF 动图。
  • glob.glob("*.jpg"):查找当前目录下所有 .jpg 文件,返回一个文件路径列表。
  • sorted(...):对文件名进行排序,避免因文件系统顺序导致播放乱序,
    所以建议命名类似 frame01.png, frame02.png...这种形式,这也就是动图的展示顺序。
  • Image.open(f):用 Pillow 打开每张图片,生成 PIL.Image 对象列表。
  • duration=500:每张图显示 0.5 秒,可调整(如 200 表示 0.2 秒,更快)。
  • loop=0:无限循环;设为 1 则只播放一次。
Pillow 的 save() 方法包含如下关键参数:

参数

作用

save_all=True

表示要保存多帧(否则只保存第一帧)

append_images=images[1:]

将后续所有图片作为附加帧加入 GIF

duration=500

每帧显示 500 毫秒(即 0.5 秒)

loop=0

循环播放次数:0 表示无限循环


推荐合集

推荐文章

最新文章

随机文章