Почему мой конвертер Imagemagick не учитывает параметр цикла?
Я использую эту команду:
convert -delay 10 -loop 1 -density 300 myfile.pdf myfile.gif
на Windows 10 и все работает хорошо, за исключением параметра цикла: даже если я установил его 1
Я всегда получаю бесконечный цикл.
Что я делаю неправильно?
1 ответ
Я сделал несколько экспериментов, варьируя -loop
параметр от 0 до 3 и использование простой красной рамки, за которой следует синяя рамка следующим образом:
for i in 0 1 2 3; do
echo i=$i
((d=80+i))
convert -delay $d -loop $i -size 256x256 xc:red xc:blue a.gif
identify -verbose a.gif | grep -E "Iter|Delay"
done
Результаты
i=0
Delay: 80x100
Iterations: 0
Delay: 80x100
Iterations: 0
i=1
Delay: 81x100
Delay: 81x100
i=2
Delay: 82x100
Iterations: 2
Delay: 82x100
Iterations: 2
i=3
Delay: 83x100
Iterations: 3
Delay: 83x100
Iterations: 3
Итак, кажется, что -delay
параметр и -loop
параметр правильно установлен в файле GIF, хотя -loop
опущен, если это 1
который по умолчанию в любом случае.
Затем я посмотрел на мой анимированный GIF в OSX, используя quicklook
функция, где вы нажимаете ␣ (ПРОБЕЛ) в Finder, и он не уважает -loop
Однако, если вы открываете GIF в Safari или Firefox, он соответствует этому параметру, поэтому я предполагаю, что он не очень стандартизирован, и то, что вы используете для просмотра файлов GIF, не соответствует плохо соблюдаемому стандарту.
Я могу ошибаться, но попробуйте использовать другое средство просмотра, например Firefox или Chrome.