0


使用Python调用ImageMagick将序列帧生成GIF

目标

使用Python来调用ImageMagick,将文件夹内所有的图片作为序列帧合并为一个GIF。


我事先使用Blender渲染了一组图片(操作很简单, 可见《尝试在blender中渲染一个最简单的动画》)
在这里插入图片描述

1. 使用ImageMagick将序列帧生成GIF

最基础的命令是比较简单的:

convert 第1帧图片 第2帧图片 ...第n帧图片 结果GIF

Animation Basics – IM v6 Examples 中有更详细的参数与范例,比如在GIF之前可以写上每帧的时间:

-set delay {time}

比如,对于以下命令:

convert D:\Test\BlenderAnim\0001.png D:\Test\BlenderAnim\0024.png D:\Test\BlenderAnim\0048.png D:\Test\BlenderAnim\animation.gif

将会把三张png合成一张GIF:
在这里插入图片描述

2. 使用Python调用ImageMagick将序列帧生成GIF

毕竟,当图片较多时,直接手动将所有图片都输入cmd是比较费时的。因此可以通过一些脚本比如python,去找到一个文件夹内的所有的图片,并将其作为参数来调用ImageMagick。

比如Python脚本文件

D:/Test/GenGIF.py

内容如下:

import os

# 序列帧所在的文件夹:
folder ="D:/Test/BlenderAnim"# 输出文件
output ="D:/Test/animation.gif"# 拼出将要运行的命令字符串:
cmd =""# exe名字:
cmd +="convert"# 遍历文件夹所有文件,将文件名写到command中for root, dirs, files in os.walk(folder):forfilein files: 
        cmd +=" "+ root +"/"+file# 帧时间(24帧每秒):
cmd +=" -set delay 1x24"# 输出文件:
cmd +=" "+ output

# 运行命令
os.system(cmd)

然后,在cmd中运行脚本:

python D:/Test/GenGIF.py

即可将 “D:/Test/BlenderAnim” 中的图片合为一个 “D:/Test/animation.gif”:
在这里插入图片描述

标签: python imagemagick

本文转载自: https://blog.csdn.net/u013412391/article/details/120796535
版权归原作者 YakSue 所有, 如有侵权,请联系我们删除。

“使用Python调用ImageMagick将序列帧生成GIF”的评论:

还没有评论