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

这篇具有很好参考价值的文章主要介绍了使用Python调用ImageMagick将序列帧生成GIF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标

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


我事先使用Blender渲染了一组图片(操作很简单, 可见《尝试在blender中渲染一个最简单的动画》)
使用Python调用ImageMagick将序列帧生成GIF

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:
使用Python调用ImageMagick将序列帧生成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中运行脚本:

python D:/Test/GenGIF.py

即可将 “D:/Test/BlenderAnim” 中的图片合为一个 “D:/Test/animation.gif”:
使用Python调用ImageMagick将序列帧生成GIF文章来源地址https://www.toymoban.com/news/detail-402512.html

到了这里,关于使用Python调用ImageMagick将序列帧生成GIF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python使用 Pillow 库】图片合成为 GIF 动画

    filename:保存图像的文件名(包括路径)。 format:保存图像的格式。常见的格式有 JPEG、PNG、GIF 等。可以根据文件扩展名自动推断格式,也可以显式指定。例如,“JPEG”、“PNG”、“GIF”。 save_all:一个布尔值,指示是否保存所有帧(仅适用于多帧图像,如 GIF)。默认为

    2024年02月10日
    浏览(41)
  • matlab 生成gif报错:“只能追加 GIF89a 格式的 GIF”

    之前在用matlab生成gif的时候总是报错“只能追加 GIF89a 格式的 GIF”,代码如下: 1.一开始以为是自己 imwrite() 的使用方法错误,用报错信息在百度搜了半天,也尝试换了几种用法,但还是没有得到解决。 2.最后在英文论坛上看到提到了循环的变量i,意识到自己一开始解决问题

    2024年02月13日
    浏览(37)
  • Python使用Pyside2和Qt Designer实现接口数据查询mainwindow-tablewidget和EXCEL导出功能,并生成EXE可执行文件直接调用.ui文件和生成py调用都有-初学

    通过Pyside2库调用QT Designer的UI文件,直接调用.ui文件和将.ui文件转换为.pt文件进行调用,调用测试成功生成exe文件 可以直接在终端调用 参考:https://blog.csdn.net/qq_44940689/article/details/123913832 直接在终端中运行 -F 只会生成单独的一个exe文件 -w 是双击exe不会打开黑色窗口,可以试

    2024年02月04日
    浏览(49)
  • ffmpeg把PNG透明背景图片序列合成透明背景视频、透明背景GIF

    透明背景的照片序列: 照片序列:PNG可以有alpha(透明度)通道,可以是透明背景。 视频格式:在视频编辑中,大多数视频格式不支持透明度,但是有三种格式支持透明背景视频 Quicktime Animation (RLE) or FFVHUFF 、 HUFFYUV 视频格式 1、接下来可以使用ffmpeg命令把PNG照片序列合成为

    2023年04月23日
    浏览(45)
  • gif文字闪图用什么制作?一键生成gif闪图小窍门

    卟玲卟领的闪动文字gif图片非常的炫酷吸引人们的眼球,它具有很好的引导性。那么,如何修改动态文字gif闪图呢?接下来,给大家分享一招闪图在线制作(https://www.gif.cn/)小窍门,不用下载软件,轻松一键手机、pc均可在线实现动图闪字制作的方法,支持原画质导出,图片

    2024年01月16日
    浏览(33)
  • 前端直接生成GIF动态图实践

    去年在博客中发了两篇关于GIF动态生成的博客,GIF图像动态生成-JAVA后台生成和基于FFmpeg的Java视频Mp4转GIF初探,在这两篇博客中都是采用JAVA语言在后台进行转换。使用JAVA的同学经过自己的改造和开发也可以应用在项目上。前段时间有朋友私下问,有没有不使用Java,甚至不依

    2024年02月03日
    浏览(30)
  • vue项目将多张图片生成一个gif动图

    当前做项目有一个需求是将多张图片生成一个gif动图的形式 类似下面图片几张图片叠加生成一个gif动图 图片涉及工作隐私,就不公开啦  我们要引入一个gif.js的引入包,但是他没有直接引入的方式,只能从官方下载文件包,下载地址:git地址 下载好的包找到下面这个两个文

    2024年02月03日
    浏览(37)
  • Java图片或视频生成GIF动图,发送微信

    别人的博客文章中有动态显示这是怎么做到的呢?别人的微信发送的表情动态为什么是自己鬼畜视频?这些都是别人做到的,本文就是让自己也可以做到以上的事情,制作鬼畜GIF动态,辣就学起来吧! GIF的发明者是美国计算机科学家、GIF图像格式发明人斯蒂芬•威尔海特(

    2024年02月02日
    浏览(53)
  • 【方便的Opencv】实现播放有声音的视频+附带图片生成gif

            因为最近老是用到Opencv这个库来处理视频,过程遇到了非常多的细节问题,最后把成品干脆直接放到博客来,这样以后可以随时过来取用。         Opencv读取视频没有声音的原因是因为:视频是分为图像与音频的,Opencv仅仅只是读取了一帧帧图像,并没有读取

    2023年04月09日
    浏览(45)
  • 免杀对抗-Python-混淆算法+反序列化-打包生成器-Pyinstall

    cs 上线 1. 生成 shellcode-c 或者 python 2. 打开 pycharm 工具,创建一个 py 文件,将原生态执行代码复制进去 shellcode 执行代码: 3.将生成的shellcode放到执行代码中,运行代码,cs成功上线 MSF 上线 1.执行命令,生成shellcode 命令:msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.206.129

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包