ImageMagick - работа с изображениями в консоли
Материал из Linux.Uz Wiki
Содержание |
Что такое ImageMagick?
ImageMagick -- это пакет программ, позволяющих манипулировать изображениями посредством консоли. Такой подход позволяет автоматизировать процесс обработки массива изображений. Например, можно легко изменить размеры сразу 1000 изображений, а потом проставить на всех логотип, подпись и т.д.
Пакет ImageMagick состоит из:
- animate
- Анимирует последовательность изображений.
- composite
- Смешивает несколько изображений в одно имеющееся.
- convert
- Конвертирует изображение между разными форматами.
- conjure
- Обрабатывает MSL скрипт для создания изображения.
- compare
- Сравнивает изображение с восстановленным изображением.
- display
- Показывет изображение.
- identify
- Описывает формат и характеристики файла изображения.
- import
- Осуществляет захват окна (скриншот) XWindow.
- montage
- Монтирует (смешивает) несколько изображений в одно новое.
- mogrify
- Преобразует требуемое изображение.
Установка и запуск
Ubuntu
Открываем Synaptic Package Manager, выбраем imagemagick. Или можно просто в консоли набрать команду:
sudo apt-get install imagemagick
Debian
Установка проста, при условии, что настроен sources.list:
- Зайдите в учётную запись системного администратора через терминал и запустите aptitude.
- Нажмите клавишу backslash (/) и ищите ImageMagick.
- Если найдено, то нажмите + на дополнительной клавиатуре (NumPad), после чего нажмите 2 раза клавишу g, если не возникли ошибки в поиске зависимостей.
Примеры использования
import
Пример получения скриншота в формате png после трёхсекундной задержки, захватив при этом рамки окон (заголовок, края):
import -pause 3 -frame -screen screenshot.png
Следует заметить, что также производится сжатие изображения.
convert
Простой скрипт, обеспечивающий пакетное сжатие широких изображений до 128 пикселей в ширину (или расширение малых по ширине картинок до этой ширины), сохраняя соотношение сторон. Достаточно указать скрипту в 1-ом аргументе папку с файлами-изображениями и они будут сжаты и записаны в текущую директорию.
#!/bin/bash
DIR=$1
DIR=${DIR%/}
for FILE in $(ls -1A "$DIR")
do
echo "convert-pictures: Converting $FILE"
convert "$DIR/$FILE" -resize 128 -quality 100 "$FILE"
done
echo 'convert-pictures: Everything is done!'

