imagemagick — консольна програма для обробки зображень.
Наприклад, ось так можна розрізати один файл зображення на кілька менших:
convert ./Skeleton_43x37.png -crop 43x37 skeleton_attack_%02d.png
Тут
./Skeleton_43x37.png — вхідний файл-crop 43x37 — розмір результатуskeleton_attack_%02d.png маска для імен файлів-результатівconvert +append ./skeleton_attack_00.png ./skeleton_attack_01.png ./jh.png
convert -append ./skeleton_attack_00.png ./skeleton_attack_01.png ./jv.png
Тут +append з'єднує зображення горизонтально (одне збоку від одного), а -append вертикально (одне над одним).
Зменшення gif-файлу є досить складним завданням, з неочікуваними особливостями
convert input.gif -coalesce -scale 385x334 -fuzz 2% +dither -layers Optimize scaled.gif
Теоретично, за допомогою imagemagick можна створювати гіфки, але це вимагає досить складних скриптів. Простіше використати ffmpeg:
ffmpeg -framerate 60 -pattern_type glob -i './skeleton_attack_*.png' c1.gif
Анімовані скріншоти у цих постах зроблені за допомогою Peek в Ubuntu.
Теоретично, щоб вирізати певну послідовність кадрів з гіфки, можна перетворити її на ряд кадрів, видалити непотрібні та склеїти назад.
Проте є простіші способи, наприклад, зі спеціальною утилітою gifsicle.
Така команда зберігає кадри з 25-го по 78-й у іншу гіфку:
gifsicle ./dragon_bones_mecha_03.gif '#25-78' > zz.gif
А ось така просто видаляє вказаний діапазон кадрів:
gifsicle ./dragon_bones_mecha_03.gif --delete '#01-25' > zz01.gif
Також різні перетворення гіфок можна виконати цим онлайновим інструментом.