Ich verwende ImageMagick, um eine Sammlung von PNGs in ein einziges GIF zu verwandeln. Ich möchte, dass dieses GIF so schnell wie möglich in einer Schleife angezeigt wird.
Dies ist ungefähr die Ausgabe, die ich erwarte (mit freundlicher Genehmigung von Wikipedia ):
Dies ist die Ausgabe, die ich tatsächlich bekomme:
In meinem Browser (Firefox 17) läuft das erwartete GIF mehr als doppelt so schnell wie das tatsächliche GIF. Das überrascht mich, denn ich habe festgelegt, dass jeder Frame 0 Delay haben soll.
Zuerst habe ich 36 PNGs erstellt, indem ich das von Wikipedia geliehene GIF explodiert habe:
--caution: command generates 36 pngs
convert.exe newton.gif newton_%d.png
Dann habe ich coalesce
die PNGs zu einem GIF zusammengefasst.
convert.exe -dispose none -delay 0 newton_%d.png[0-35] -coalesce output.gif
identify
bestätigt, dass jeder Frame keine Verzögerung hat:
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,
Dies ist in der Tat weniger Verzögerung als das Original:
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,
Das tatsächliche GIF hat eine geringere Verzögerung als das erwartete GIF. Warum ist das erwartete GIF also doppelt so schnell wie das tatsächliche GIF?
-delay 2
.