У меня есть изображение, которое содержит меньшие изображения, подобные этому:
------
| 1 |
------
| 2 |
------
| 3 |
------
| 4 |
------
Каждое изображение 100x200, а изображение 100x800
Я хотел бы объединить их все в одну анимацию, которая будет проходить по изображениям с 1 по 4.
Я использую инструмент convert
imagemagick, чтобы обрезать изображения. Например, я сделал командный файл
convert %1 -crop 100x200+0+0 %~n1_01.png
convert %1 -crop 100x200+0+200 %~n1_02.png
convert %1 -crop 100x200+0+400 %~n1_03.png
convert %1 -crop 100x200+0+600 %~n1_04.png
А затем запустите его на образе с именем main.jpg
Это создает набор изображений, но когда я пытаюсь преобразовать их в GIF, как это
convert *.png out.gif
Вместо одной анимации размером 100x200 я получаю анимацию размером 100x800, и изображения просто появляются с определенными смещениями.
Когда я identify
пару обрезанных изображений, это дает мне
main_01.png PNG 100x200 100x800+0+0 8-bit sRGB 4.74KB 0.000u 0:00.000
main_02.png PNG 100x200 100x800+0+200 8-bit sRGB 3.39KB 0.000u 0:00.000
Предположительно, imagemagick пытается помочь, читая метаданные и определяя, что я на самом деле хотел бы использовать холст размером 100x800, и каждое изображение должно быть размещено с определенными смещениями. Что не то, что я хочу.
на самом деле, читая учебник, imagemagick действительно поможет вам в этом.
То есть IM сохраняет информацию об изображении «виртуальный холст», «страницу» или «наслоение», чтобы сохранить ее для последующего использования. Это особенно важно для правильной работы с GIF-анимацией.
Когда я открываю каждый файл вручную в рисовании и затем повторно сохраняю его, когда я повторно идентифицирую main_02.png
, я получаю
main_02.png PNG 100x200 100x200+0+0 8-bit sRGB 4.03KB 0.000u 0:00.000
Делая это для всех изображений, я снова делаю преобразование в gif, и, наконец, это gif 100x200, который выглядит так, как я хочу.
Как я могу установить все смещения на (0, 0), чтобы мне не пришлось делать это вручную при рисовании?