Python ImageIO中动画GIF的自定义帧持续时间

我一直在用Python中的GIF动画,框架将由位于温室中的Raspberry Pi Camera生成。 我使用了Almar回答之前推荐的imageio代码,并成功创建了简单的gif。

但是,我现在试图减慢帧持续时间,但查看imageio的文档,找不到任何mimsave的引用,但看到mimwrite,这应该需要四个参数。 我查看了其他gif文档,可以看到有一个持续时间参数。

目前,我的代码如下所示:

exportname = "output.gif"
kargs = { 'duration': 5 }
imageio.mimsave(exportname, frames, 'GIF', kargs)

并且出现以下错误:

Traceback (most recent call last):
File "makegif.py", line 23, in <module>
imageio.mimsave(exportname, frames, 'GIF', kargs)
TypeError: mimwrite() takes at most 3 arguments (4 given)

其中frames是imageio.imread对象的列表。 为什么是这样?

已更新显示完整答案:这是一个示例,显示如何使用kwargs创建带有imageio的动画gif以更改帧持续时间。

import imageio
import os
import sys

if len(sys.argv) < 2:
  print("Not enough args - add the full path")

indir = sys.argv[1]

frames = []

# Load each file into a list
for root, dirs, filenames in os.walk(indir):
  for filename in filenames:
    if filename.endswith(".jpg"):
        print(filename)
        frames.append(imageio.imread(indir + "/" + filename))


# Save them as frames into a gif 
exportname = "output.gif"
kargs = { 'duration': 5 }
imageio.mimsave(exportname, frames, 'GIF', **kargs)

mimsave不接受4个位置参数。 超出第三个参数的任何内容必须作为关键字参数提供。 换句话说,你必须像这样解开kargs

imageio.mimsave(exportname, frames, 'GIF', **kargs)

或者你可以这样称呼它:

imageio.mimsave(exportname, frames, format='GIF', duration=5)
链接地址: http://www.djcxy.com/p/84147.html

上一篇: Custom Frame Duration for Animated Gif in Python ImageIO

下一篇: Can't create/modify gifs with Mono