Обзор возможностей
Консольная утилита compare, входящая в состав графического пакета ImageMagick, предоставляет администраторам и инженерам удобный способ поиска различий между растровыми файлами. Инструмент позволяет как сгенерировать наглядную визуальную карту расхождений, так и вычислить точные математические метрики отклонений для интеграции в CI/CD-пайплайны. Ниже представлено практическое руководство по работе с этой утилитой: от базового развертывания до фильтрации фоновых артефактов и автоматизации проверок.
1. Установка пакета ImageMagick и диагностика утилиты compare
Для подготовки рабочей среды синхронизируем локальные списки репозиториев и установим пакет imagemagick.

Утилита compare предназначена для сопоставления двух изображений, выявления несовпадающих пикселей и построения результирующего файла с графической разметкой изменений.
Чтобы убедиться в корректности установки и просмотреть сведения о сборке и активных функциях, выполним команду compare -version.
⚙️ [Ключевые параметры запуска]
-metric : определяет алгоритм расчета математической погрешности между файлами (AE, RMSE, PSNR и др.).-fuzz : устанавливает порог чувствительности (например, 5%), позволяющий игнорировать едва заметные цветовые сдвиги.-highlight-color : задает оттенок для явного выделения изменившихся областей на результирующем изображении.-lowlight-color : определяет оформление неизмененных фрагментов (фоновых пикселей) для повышения контрастности.-compose : задает алгоритм композитинга при объединении исходных слоев в карте различий.

2. Генерация тестовых паттернов и рендеринг визуального diff
Для проведения наглядного теста подготовим базовый эталон: с помощью утилиты convert создадим файл base.png с белым фоном и расположенным по центру красным прямоугольником.

Теперь сформируем второй файл modified.png, добавив поверх исходного изображения синий блок для имитации правок в интерфейсе или графике.

Запустим команду compare, передав исходник base.png и модифицированную версию modified.png, чтобы сохранить карту несовпадений в файл diff.png.
По умолчанию совпадающие области отображаются бледным полупрозрачным фоном, тогда как затронутые модификацией пиксели акцентируются ярко-красным цветом.

Проконтролируем факт создания всех графических файлов и их размер с помощью вызова ls -lh base.png modified.png diff.png.

3. Расчет численных метрик расхождения с флагом -metric
Если сохранять визуальный файл не требуется, а нужно лишь мгновенно узнать суммарный объем несовпадающих пикселей, выполняют команду compare -metric AE base.png modified.png null: 2>&1.
Метрика AE (Absolute Error) возвращает точное количество отличающихся точек, а перенаправление вывода в псевдоустройство null: исключает запись на диск, транслируя итоговое число прямо в стандартный поток ошибок.

Для более глубокого статистического анализа расхождений с учетом разницы в цветовых каналах используют расчет среднеквадратичной ошибки: compare -metric RMSE base.png modified.png null: 2>&1.
Индикатор RMSE (Root Mean Squared Error) рассчитывает нормализованную погрешность по всем пикселям, что делает его оптимальным критерием для пороговых проверок в автотестах графического интерфейса.

4. Сглаживание артефактов через -fuzz и настройка палитры подсветки
При артефактах сжатия или незначительных колебаниях рендеринга целесообразно задать допустимую погрешность в 5%, выполнив compare -fuzz 5% base.png modified.png diff_fuzz.png.
Параметр -fuzz отсекает микроскопические различия оттенков, незаметные человеческому глазу, и формирует итоговый файл diff_fuzz.png только с существенными структурными несовпадениями.

Для более комфортного визуального разбора можно переопределить цветовую гамму сопоставления: compare -highlight-color magenta -lowlight-color gray base.png modified.png diff_custom.png.
Опция -highlight-color выделяет измененные зоны контрастным пурпурным цветом (magenta), а -lowlight-color окрашивает идентичный фон в нейтральный серый (gray), делая результирующий снимок diff_custom.png максимально читаемым.

Проверим созданные конфигурации масок и их файловые атрибуты в терминале командой ls -lh diff_fuzz.png diff_custom.png.

Мы подробно рассмотрели сценарии применения инструмента compare в дистрибутиве Ubuntu для обнаружения расхождений в изображениях и автоматизации контроля качества медиафайлов.
Используя разобранные опции и метрики, вы сможете без труда настроить надежные скрипты регрессионного визуального тестирования под требования вашего проекта.