【发布时间】:2019-04-21 05:32:10
【问题描述】:
在 python 中,我使用 PIL 加载 gif。我提取第一帧,修改它,然后放回去。我用以下代码保存修改后的 gif
imgs[0].save('C:\\etc\\test.gif',
save_all=True,
append_images=imgs[1:],
duration=10,
loop=0)
其中 imgs 是组成 gif 的图像数组,duration 是帧之间的延迟(以毫秒为单位)。我想让持续时间值与原始 gif 相同,但我不确定如何提取 gif 的总持续时间或每秒显示的帧数。
据我所知,gifs的头文件没有提供任何fps信息。
有谁知道我怎样才能得到正确的持续时间值?
提前致谢
编辑:请求的 gif 示例:
取自here。
【问题讨论】:
-
如果您没有找到更好的答案stackoverflow.com/a/31194595/2836621,您可以使用 ImageMagick 获得以厘秒为单位的帧延迟
-
GIF 并不表示 fps,因为每个单独的图像都可以有自己的时间。这是一个潜在的问题吗?如果不是,请将它们全部相加并除以帧数。
-
@usr2564301 这不是问题,因为帧将始终具有相同的持续时间,因此我可以从中计算帧速率,但我不知道如何获得单独的持续时间框架,你呢?
-
我不知道,但 GIF 格式在其他地方被广泛描述。甚至可能有一些现成的代码。同时,您可以在您的问题中添加这样的 GIF 吗?
-
我在上面链接的答案中有一个动画 GIF,列出了每帧延迟。
标签: python python-3.x python-imaging-library gif animated-gif