

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")
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 则只播放一次。save() 方法包含如下关键参数:参数 | 作用 |
|---|---|
| 表示要保存多帧(否则只保存第一帧) |
| 将后续所有图片作为附加帧加入 GIF |
| 每帧显示 500 毫秒(即 0.5 秒) |
| 循环播放次数:0 表示无限循环 |
Python--数据/图像可视化(雷达图,甘特图,热力图)
细数那些经典教材(编程、数据结构与算法)
Python库巡礼(NumPy,Pandas,SciPy)
推荐文章