Гид по технологиям

ImageMagick: пакетная обработка изображений в Linux

7 min read Linux ImageMagick Обновлено 22 Dec 2025
ImageMagick в Linux: пакетная обработка фото
ImageMagick в Linux: пакетная обработка фото

Терминал Linux с талисманом Tux, держащим кисть позади терминала.

Кратко: ImageMagick — мощный набор утилит командной строки для пакетной обработки изображений в Linux. В этой статье шаг за шагом показано, как устанавливать ImageMagick, массово удалять EXIF, изменять размеры, кадрировать, водяные знаки, конвертировать форматы и другие распространённые операции. Есть рекомендации по безопасности, контроль качества и готовые шаблоны команд.

Быстрые ссылки

  • First, Install ImageMagick

  • Batch Remove EXIF Data From Images

  • Batch Resize Photos

  • Batch Crop Photos

  • Batch Watermark Images

  • Convert Image File Formats

  • Rotate Images in Bulk

  • Batch Flip (Mirror) Images

  • Change JPEG Quality

  • Rename Images in Bulk

  • Auto Crop and Trim

  • Merge Images to Create Collages

  • Linux ❤️ Creativity

ImageMagick — это мощный инструмент командной строки в Linux для пакетного редактирования изображений. Ниже — полный справочник по часто используемым операциям: кадрирование, изменение размера, объединение, удаление метаданных (EXIF) и другие действия. Я объясняю команды, даю готовые шаблоны и добавляю практические советы по безопасности и контролю качества.

Установка ImageMagick

Пакетное редактирование фотографий в Linux выполняется с помощью ImageMagick. ImageMagick — бесплатный набор утилит для создания и редактирования изображений из командной строки: изменение размеров, кадрирование, конвертация, поворот и другие массовые операции.

На Debian/Ubuntu установите пакет командой:

sudo apt install imagemagick

На Fedora:

sudo dnf install ImageMagick

Совет по безопасности: всегда проверяйте команды, которые копируете из интернета. Команды, работающие с большим количеством файлов, могут повредить данные, если запустить их в неправильной папке.

Массовое удаление EXIF-данных из изображений

EXIF содержит информацию о камере, настройках съёмки, цветовых профилях и может включать геолокацию. Если вы публикуете фото в интернете, удаление EXIF защитит приватность.

Шаблон команды для JPG и PNG:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -strip "/path/to/output_directory/$(basename "$file")"; done

Объяснение:

  • Цикл for перебирает файлы с расширениями .jpg, .jpeg, .png (обратите внимание, что имена чувствительны к регистру).
  • Переменная $file содержит путь к текущему файлу.
  • Опция -strip команды convert удаляет все метаданные (EXIF, цветовые профили и прочее).
  • Результат записывается в отдельную папку, оригиналы остаются нетронутыми.

Важно: -strip удаляет не только геоданные, но и цветовые профили; если вам важен цвет, сделайте резервную копию.

Массовое изменение размера фото

Команда изменяет все изображения в папке до 1024x768 пикселей:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -resize 1024x768 "/path/to/output_directory/$(basename "$file")"; done

Примечания:

  • -resize 1024x768 принудительно установит размеры; если соотношение сторон отличается, изображение может быть растянуто.
  • Если нужно сохранить пропорции, используйте суффиксы, например “1024x” (ширина максимум 1024) или “x768” (высота максимум 768), или добавьте “^” и -gravity + -extent для обрезки.

Пример сохранения пропорций и заполнения до конкретного размера:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -resize 1024x768^ -gravity center -extent 1024x768 "/path/to/output_directory/$(basename "$file")"; done

Массовое кадрирование изображений

Команда обрезает изображения до 800x600 пикселей, начиная с координат 0,0 (левый верхний угол):

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -crop 800x600+0+0 "/path/to/output_directory/$(basename "$file")"; done

Разбор параметра 800x600+0+0:

  • 800x600 — размеры области, которую нужно оставить.
  • +0+0 — координаты начала обрезки (X/Y), в данном случае верхний левый угол.

Если нужно кадрировать центр изображения, сначала можно вычислить смещение или воспользоваться комбинацией -resize и -gravity.

Массовая водяная маркировка изображений

Защита авторских прав и брендирование — частая задача. Пример команды для добавления текстовой водяной метки в правый нижний угол:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -gravity southeast -pointsize 20 -draw "text 5,5 'My Watermark'" "/path/to/output_directory/$(basename "$file")"; done

Объяснение:

  • -gravity southeast устанавливает привязку к правому нижнему углу (southeast).
  • -pointsize 20 задаёт размер шрифта.
  • -draw “text 5,5 ‘My Watermark’” рисует текст со смещением 5 пикселей от угла.

Советы:

  • Для более аккуратного результата используйте прозрачный слой и composite или -annotate с указанием шрифта.
  • Чтобы использовать пользовательский шрифт, добавьте -font “/path/to/font.ttf”.

Конвертация форматов изображений партиями

Преобразование JPG в PNG:

for file in /path/to/source_directory/*.{jpg,jpeg}; do convert "$file" "/path/to/output_directory/$(basename "${file%.*}.png")"; done

Формат определяется по расширению выходного файла. ImageMagick умеет работать с JPEG, PNG, GIF, TIFF, BMP, SVG, WEBP, HEIC и RAW, а также с PDF и векторными SVG.

Совет по совместимости: при конвертации в WEBP или HEIC учитывайте версию ImageMagick и установленные кодеки; старые сборки могут не поддерживать эти форматы.

Массовый поворот изображений

Повернуть на 90 градусов по часовой стрелке:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -rotate 90 "/path/to/output_directory/$(basename "$file")"; done

Замените 90 на нужный угол (например, 180 или -90).

Массовое отражение (flip/mirror)

Вертикальное отражение:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -flip "/path/to/output_directory/$(basename "$file")"; done

Горизонтальное отражение:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -flop "/path/to/output_directory/$(basename "$file")"; done

Изменение качества JPEG

Можно уменьшить размер JPG, снижая качество:

for file in /path/to/source_directory/*.jpg; do convert "$file" -quality 85 "/path/to/output_directory/$(basename "$file")"; done

Пояснения:

  • Параметр -quality принимает значения 0–100 (100 — максимум качества). Для веба часто рекомендуют 60–85.
  • Понижение качества необратимо — всегда оставляйте оригиналы.

Массовое переименование изображений

Простой способ добавить суффикс _renamed к каждому файлу:

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do cp "$file" "/path/to/output_directory/$(basename "${file%.*}_renamed.${file##*.}")"; done

Если нужно переименовать на последовательные номера, можно использовать счётчик в цикле или утилиты rename/awk.

Автоматическое обрезание и подрезка фона

Опция -trim автоматически обрезает изображение по цвету фона (пиксели в углах используются как референс):

for file in /path/to/source_directory/*.{jpg,jpeg,png}; do convert "$file" -trim "/path/to/output_directory/$(basename "$file")"; done

Замечание: -trim чувствителен к шуму и градиентам — для сложного фона могут понадобиться предварительные фильтры.

Объединение изображений для коллажей

Инструмент montage создаёт коллажи и сетки:

montage /path/to/source_directory/*.{jpg,jpeg,png} -tile 2x2 -geometry +5+5 "/path/to/output_directory/collage.jpg
  • -tile 2x2 — сетка 2 на 2.
  • -geometry +5+5 — отступы между изображениями.

Если файлов больше, чем ячеек, montage создаст дополнительные страницы или расширит сетку в зависимости от параметров.

Практические рекомендации и чеклист перед массовым запуском

  1. Создайте резервную копию исходных изображений.
  2. Тестируйте команды на 3–10 образцах, а не на всей папке.
  3. Убедитесь, что файлы соответствуют расширениям (регистрозависимо).
  4. Проверяйте доступность кодеков (WEBP/HEIC) и версию ImageMagick.
  5. Если используете автоматизацию (скрипты/cron), логируйте операции и ошибки.

Критерии приёмки

  • Все выходные файлы созданы в /path/to/output_directory с теми же именами (или по ожидаемому варианту именования).
  • Размеры и метаданные соответствуют заданным опциям (-resize, -crop, -strip).
  • Для водяных знаков текст читаем и не уходит за границы изображения.
  • Качество JPG не ниже ожидаемого визуально при просмотре в масштабе 100%.

Контроль качества и тесты

Тестовые сценарии:

  • Тест 1: Запустите -strip на 5 изображениях, проверьте, что EXIF удалён (identify -verbose).
  • Тест 2: Измените качество JPG до 75, сравните размер и визуальное качество.
  • Тест 3: Создайте коллаж из 4 изображений, проверьте отступы и выравнивание.

Команда для проверки метаданных:

identify -verbose /path/to/output_directory/example.jpg | grep -i exif

Ошибки и способы их исправления

  • Проблема: пустые или повреждённые файлы в папке. Решение: отфильтруйте по MIME-типу с помощью file или find -type f -exec file –mime-type {} \;.

  • Проблема: ImageMagick не поддерживает формат (например, HEIC). Решение: установите дополнительные библиотеки/кодеки (libheif, libwebp) или обновите ImageMagick.

  • Проблема: команды не выполняются для файлов с пробелами. Решение: используйте конструкцию while IFS= read -r -d ‘’ file; do …; done < <(find … -print0) для безопасной обработки имён.

Пример безопасного цикла find + while:

find /path/to/source_directory -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -print0 | while IFS= read -r -d '' file; do convert "$file" -strip "/path/to/output_directory/$(basename "$file")"; done

Альтернативные инструменты

  • GraphicsMagick — форк ImageMagick, иногда быстрее для массовых задач.
  • exiftool — специализированный инструмент для работы с метаданными.
  • ffmpeg — для последовательностей изображений и конвертации в видео.
  • GUI-инструменты: GIMP, Darktable — если нужен визуальный контроль при обработке.

Безопасность и конфиденциальность

  • Никогда не публикуйте изображения с геоданными, если это может повредить вашей приватности.
  • Удаление EXIF с помощью -strip удаляет и цветовые профили; если сохраняется требование цветокоррекции, отдельно управлять профилями.
  • При автоматизации убедитесь, что скрипты не запускаются от root без необходимости.

Роли и чеклисты (кто что делает)

  • Фотограф/Автор: проверяет исходники и оставляет резерв.
  • SRE/администратор: устанавливает и поддерживает версии ImageMagick и кодеков.
  • Контент-менеджер: определяет требования по качеству и размерам для публикации.

Чеклист запуска автоматизации:

  • Резерв исходников
  • Тест на выборке
  • Логирование в файл
  • Проверка доступности выходной директории

Быстрые шаблоны команд (cheat sheet)

  • Удалить EXIF: см. раздел «Массовое удаление EXIF-данных».
  • Сохранить пропорции: -resize 1024x
  • Заполнить и обрезать до размера: -resize 1024x768^ -gravity center -extent 1024x768
  • Добавить водяной знак шрифтом: -font “/path/to/font.ttf” -pointsize 20 -gravity southeast -annotate +5+5 “Текст”

Короткий глоссарий терминов

  • EXIF — встроенные метаданные фотографии (модель камеры, дата, геолокация).
  • convert — основная утилита ImageMagick для преобразований изображений.
  • montage — утилита ImageMagick для создания коллажей.
  • -strip — опция для удаления метаданных и профилей.

Social preview (краткий анонс для публикации)

Linux + ImageMagick упрощают массовую обработку фотографий: от удаления EXIF до создания коллажей. Полезно для блогеров, фотографов и SRE.


Итого: ImageMagick даёт гибкие инструменты для пакетной обработки изображений прямо из терминала. Протестируйте команды на образцах, сделайте резервные копии и используйте более надёжные find/while конструкции для обработки файлов с пробелами или необычными именами. Следуя чеклистам и критериям приёмки, вы быстро настроите воспроизводимый рабочий процесс.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Нет звука в Windows 10 — пошаговое руководство
Windows

Нет звука в Windows 10 — пошаговое руководство

Ярлыки к экранам Android‑приложений
Android.

Ярлыки к экранам Android‑приложений

Что такое JFIF и как открыть или конвертировать
Файлы и форматы

Что такое JFIF и как открыть или конвертировать

Скрыть поиск и кнопку Просмотр задач в Windows 10
Windows

Скрыть поиск и кнопку Просмотр задач в Windows 10

Загрузка видео через Adobe Media Encoder
Видео

Загрузка видео через Adobe Media Encoder

Как найти IP-адрес роутера на всех платформах
Сеть

Как найти IP-адрес роутера на всех платформах