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!'