jra*_*amm 2 python gif python-imaging-library
我正在使用枕头图像库创建 GIF。我遇到了一个问题,我试图使某些帧以尽可能短的帧持续时间快速闪烁,但是当我将帧的持续时间设置为 1(可能的最低持续时间,GIF 的持续时间为 100) ),实际上它的持续时间似乎比预期的要长。
\n我使用类似于以下的简单Image.save()(GIF 格式)命令保存 gif :
# durations are actually in milliseconds in the pillow library, but\n# they translate to 100ths of a second (1/10 of the value input here)\ndurations = [650, 10, 900, 750, 10, 800, 10, ... ]\nmy_gif.save(filename, format=\'GIF\', save_all=True, duration=durations, loop=0, disposal=2)\nRun Code Online (Sandbox Code Playgroud)\n我不确定这个问题是特定于枕头库还是仅特定于 GIF 格式。但我注意到以下几点:
\n
\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0
Original Image | Sped Up Image\n\n 65 32\n 1 2\n 90 45\n 1 2\n 75 37\n 1 2\n 80 40\n 1 2\n 4 2\n 1 2\n 114 56\n 1 2\n 35 17\n 1 2\n 100 50\n 1 2\n 1 2\n 1 2\n 20 10\n 1 2\n 250 125\n 1 2\nRun Code Online (Sandbox Code Playgroud)\n有人可以帮助解释这种看似差异的原因吗?这是GIF格式的工作原理,还是枕头图像库的问题?如何生成具有更快“闪烁”效果的 GIF,就像我希望的那样?
\n经过进一步研究,这似乎是跨不同浏览器和平台进行 gif 渲染的一个已知问题。虽然 GIF 规范表明 GIF 支持高达 100fps,但实际上,大多数现代浏览器仅支持最大 50fps,如Buttery Smooth 10fps中所述
这个超级用户的答案最初让我理解了这个问题。它解释了问题并提供了一些上下文链接,包括指向动画 Gif 的帧延迟时间的链接,它提供了有关这种差异背后的历史的一些附加上下文。后一篇文章暗示了这样一个事实:某些浏览器可能会将 1/100 的值解释为 10/100,使其看起来比预期慢得多。
有趣的是,我发现将 gif 帧延迟设置为 2/100(而不是 1/100)会导致在我测试过的现代浏览器中帧播放速度更快,这似乎是它们的最大速度(50fps)支持。我怀疑 EZGif 已经知道这一点,并在他们的算法中考虑到了这一点。
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |