我正在使用ImageMagick将png的集合变成单个gif。我希望此gif尽快循环播放。
这大约是我期望的输出(由Wikipedia提供):
这是我实际得到的输出:
在我的浏览器(Firefox 17)上,预期gif的运行速度是实际gif的两倍以上。这让我感到惊讶,因为我指定每个帧应具有0个延迟。
首先,我通过分解从维基百科借来的gif来创建36 png:
--caution: command generates 36 pngs
convert.exe newton.gif newton_%d.png
然后我习惯coalesce
将png重组为一个gif。
convert.exe -dispose none -delay 0 newton_%d.png[0-35] -coalesce output.gif
identify
确认每个帧没有延迟:
identify.exe -format "%T, " output.gif
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
实际上,这比原始延迟少:
identify.exe -format "%T, " newton.gif
5, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2,
实际gif的延迟少于预期的gif。那么,为什么预期的gif是实际gif的两倍?
-delay 2
。