Почему мой конвертер 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.

Другие вопросы по тегам