2 KiB
2 KiB
Анимация Gif с помощью скрипта Bash
Три шага преобразований лучше выполнять по отдельности, чтобы визуально убедиться в результатах. Сначала создаём серию скриншотов, выкидываем лишние или одинаковые, если таковые попались. После этого вырезаем релевантную часть из всех изображений и сохраняем в отдельные файлы. Затем объединяем части в один анимационный файл.
#!/bin/bash
folder="$HOME/screenshot" # Каталог для скриншотов должен существовать.
#-----------------------------------------------------------------------------------------------;
# Создание 30 скриншотов по 3 штуки в секунду и сохранение их в каталоге.
for i in {01..30}; do
xfce4-screenshooter -f -s "$folder/screenshot${i}.gif"
sleep 0.333
done
#-----------------------------------------------------------------------------------------------;
# Обрезка изображений и сохранение релевантных частей в этом же каталоге, ШхВ нового изображения и ШхВ отступ.
for i in {01..30}; do
convert -verbose -strip "$folder/screenshot${i}.gif" -crop 640x480+320+230 +repage "$folder/animation${i}.gif"
done
#-----------------------------------------------------------------------------------------------;
# Анимация в бесконечном цикле из полученных изображений с задержкой 0.5 секунды на кадре и ещё 3 секунды на последнем кадре.
convert -verbose -loop 0 -delay 50 "$folder"/animation{01..30}.gif -delay 300 "$folder"/animation30.gif "$folder"/animation.gif