25 lines
2 KiB
HTML
25 lines
2 KiB
HTML
# Анимация Gif с помощью скрипта Bash
|
||
|
||
Три шага преобразований лучше выполнять по отдельности, чтобы визуально убедиться в результатах. Сначала
|
||
создаём серию скриншотов, выкидываем лишние или одинаковые, если таковые попались. После этого вырезаем
|
||
релевантную часть из всех изображений и сохраняем в отдельные файлы. Затем объединяем части в один
|
||
анимационный файл.
|
||
|
||
```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
|
||
```
|