目标
使用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):
for file in files:
cmd += " " + root + "/" + file
# 帧时间(24帧每秒):
cmd += " -set delay 1x24"
# 输出文件:
cmd += " " + output
# 运行命令
os.system(cmd)
然后,在cmd中运行脚本:文章来源:https://www.toymoban.com/news/detail-402512.html
python D:/Test/GenGIF.py
即可将 “D:/Test/BlenderAnim” 中的图片合为一个 “D:/Test/animation.gif”:
文章来源地址https://www.toymoban.com/news/detail-402512.html
到了这里,关于使用Python调用ImageMagick将序列帧生成GIF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!