在 Python 中以编程方式生成视频或动画 GIF?

新手上路,请多包涵

我有一系列图像,我想从中创建视频。理想情况下,我可以为每一帧指定一个帧持续时间,但固定的帧速率也可以。我在 wxPython 中这样做,所以我可以渲染到 wxDC 或者我可以将图像保存到文件中,比如 PNG。是否有 Python 库允许我从这些帧创建视频(AVI、MPG 等)或动画 GIF?

编辑:我已经尝试过 PIL,但它似乎不起作用。有人可以用这个结论纠正我或建议另一个工具包吗?这个链接似乎支持我关于 PIL 的结论:http: //www.somethinkodd.com/oddthinking/2005/12/06/python-imaging-library-pil-and-animated-gifs/

原文由 FogleBird 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 388
2 个回答

好吧,现在我正在使用 ImageMagick。我将帧保存为 PNG 文件,然后从 Python 调用 ImageMagick 的 convert.exe 来创建动画 GIF。这种方法的好处是我可以为每个帧单独指定一个帧持续时间。不幸的是,这取决于机器上安装的 ImageMagick。他们有一个 Python 包装器,但它看起来很糟糕且不受支持。仍然对其他建议持开放态度。

原文由 FogleBird 发布,翻译遵循 CC BY-SA 2.5 许可协议

我建议不要使用 visvis 的 images2gif,因为它在 PIL/Pillow 方面存在问题并且没有得到积极维护(我应该知道,因为我是作者)。

相反,请使用 imageio ,它是为解决这个问题以及更多问题而开发的,并且打算保留下来。

快速而肮脏的解决方案:

 import imageio
images = []
for filename in filenames:
    images.append(imageio.imread(filename))
imageio.mimsave('/path/to/movie.gif', images)

对于较长的电影,请使用流媒体方法:

 import imageio
with imageio.get_writer('/path/to/movie.gif', mode='I') as writer:
    for filename in filenames:
        image = imageio.imread(filename)
        writer.append_data(image)

原文由 Almar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏