如何在 Python 中以非常短的延迟将 PNG 转换为 GIF?
How to convert PNGs to GIF with very short delay in Python?
我在此找到的唯一类似线程是 Gif Frame Duration Seems Slower Than Expected,它在一定程度上解决了我的问题,但 'solution' 不起作用。
我的问题是我使用 Pillow 通过以下代码将 PNG 转换为 GIF:
frames = [Image.open("_bg0.png"), Image.open("_bg1.png"), Image.open("_bg2.png"), Image.open("_bg3.png")]
frames[0].save('_test.gif', format='GIF',
append_images=frames[1:],
save_all=True,
disposal = 2,
duration=4, loop=0, transparency=0)
我希望持续时间为 4 毫秒,但输出看起来 比这慢很多 。这是一个示例(顶部是 Pillow,底部是 EzGif,指定了相同的延迟)。
我看到它与帧速率有关,但是我在链接线程中尝试的所有操作都不起作用(特别是将值设置为略高于 1)。我尝试将其设置为 0、1、2、3、4 以及介于两者之间的许多值。
我该如何解决这个问题?我希望能够在 Python.
中进行此转换
如评论中所述,我将我的设置为 20 毫秒(我尝试过 2/100 毫秒而不是 2/100 秒,这导致了前面描述的问题)。
这已经解决了这个问题,实际上在使用 EzGif 时已经有一个 'speed cap' 我只是没有意识到。
我在此找到的唯一类似线程是 Gif Frame Duration Seems Slower Than Expected,它在一定程度上解决了我的问题,但 'solution' 不起作用。
我的问题是我使用 Pillow 通过以下代码将 PNG 转换为 GIF:
frames = [Image.open("_bg0.png"), Image.open("_bg1.png"), Image.open("_bg2.png"), Image.open("_bg3.png")]
frames[0].save('_test.gif', format='GIF',
append_images=frames[1:],
save_all=True,
disposal = 2,
duration=4, loop=0, transparency=0)
我希望持续时间为 4 毫秒,但输出看起来 比这慢很多 。这是一个示例(顶部是 Pillow,底部是 EzGif,指定了相同的延迟)。
我看到它与帧速率有关,但是我在链接线程中尝试的所有操作都不起作用(特别是将值设置为略高于 1)。我尝试将其设置为 0、1、2、3、4 以及介于两者之间的许多值。
我该如何解决这个问题?我希望能够在 Python.
中进行此转换如评论中所述,我将我的设置为 20 毫秒(我尝试过 2/100 毫秒而不是 2/100 秒,这导致了前面描述的问题)。
这已经解决了这个问题,实际上在使用 EzGif 时已经有一个 'speed cap' 我只是没有意识到。