Если вы установите переменные в вашей оболочке для ширины и высоты отдельного спрайта, смещений X и Y для начального спрайта и количества используемых спрайтов, команда ImageMagick, подобная этой, извлечет запрошенные спрайты излист и превратить их в анимированный GIF.
Это в синтаксисе Windows CMD ...
set WIDE=100
set HIGH=100
set XCOORD=100
set YCOORD=300
set FRAMES=5
convert spritesheet.png ^
-set option:distort:viewport %[fx:%FRAMES%*%WIDE%]x%HIGH% ^
-set option:slider %[fx:%YCOORD%*(w/%WIDE%)+%XCOORD%] ^
-crop %WIDE%x%HIGH% +append +repage ^
-distort affine "%[slider],0 0,0" ^
-crop %WIDE%x%HIGH% +repage ^
-set delay 50 -loop 0 result.gif
Переменные% WIDE% и% HIGH% являются размерами отдельного спрайта.
Переменные% XCOORD% и% YCOORD% - это смещения первого необходимого спрайта слева и сверху листа.
Переменная% FRAMES% - это общее количество спрайтов дляизвлечение.
Команда начинается с чтения входного листа.Он использует размеры входного изображения и предоставленные вами переменные, чтобы определить некоторые настройки для IM, которые будут использоваться позже.Во-первых, это размеры области просмотра, необходимой для выделения запрошенного числа спрайтов.Во-вторых, он вычисляет смещение, в котором первый спрайт будет после , когда лист будет обрезан на отдельные спрайты и добавлен в один горизонтальный ряд.
Затем он "-crop" помещает изображение вотдельные спрайты и "+ добавьте" их в один горизонтальный ряд.
Затем он использует "-distort affine" для перемещения целого ряда спрайтов на требуемое расстояние - "% [slider]" - влевонекоторое количество выходит из области просмотра, если необходимо, и уменьшает область просмотра, чтобы просто показать правильное количество спрайтов.
После этого оно снова обрезает это изображение в отдельные спрайты, устанавливает задержку для анимации и записываетoutput GIF.
Для сценария Windows BAT вам необходимо удвоить знак процента «%%» для переменных IM и выражений FX, но не для переменных оболочки, таких как% WIDE%.
Для * nix оболочки или скрипта вам нужно установить эти переменные и получить к ним доступ по-разному.Также вам нужно заменить символы продолжения строки «^» на обратную косую черту «\».
Для ImageMagick версии 7 запустите команду с «magick» вместо «convert».
Beforeзаписывая выходной GIF, вы захотите установить требуемый метод удаления, задержку и, возможно, «-loop 0».