Tôi đang sử dụng ImageMagick để biến một bộ sưu tập pngs thành một gif duy nhất. Tôi muốn gif này lặp càng nhanh càng tốt.
Đây là xấp xỉ đầu ra mà tôi mong đợi (lịch sự của Wikipedia ):
Đây là đầu ra tôi thực sự nhận được:
Trên trình duyệt của tôi (Firefox 17), gif dự kiến sẽ chạy nhanh hơn gấp đôi so với gif thực tế. Điều này làm tôi ngạc nhiên, vì tôi đã chỉ định rằng mỗi khung hình nên có độ trễ 0.
Đầu tiên tôi tạo ra 36 png bằng cách phát nổ gif mượn từ Wikipedia:
--caution: command generates 36 pngs
convert.exe newton.gif newton_%d.png
Sau đó, tôi đã sử dụng coalesce
để kết hợp lại các pngs thành một gif.
convert.exe -dispose none -delay 0 newton_%d.png[0-35] -coalesce output.gif
identify
xác nhận rằng mỗi khung hình không có độ trễ:
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,
Trên thực tế, điều này ít chậm trễ hơn bản gốc:
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 thực tế có độ trễ ít hơn gif dự kiến. Vậy tại sao gif dự kiến lại nhanh gấp đôi gif thực tế?
-delay 2
.