Сравнивать два изображения «на глаз» — плохая затея. Разница в степени сжатия, цветокоррекции или версии интерфейса часто настолько мала, что заметить её можно только при увеличении и точном совмещении. Identity — небольшой инструмент, который ставит два файла рядом пиксель в пиксель и позволяет рассматривать их синхронно.
Зачем нужно такое сравнение
Типичные задачи: оценить потери качества после сжатия PNG в JPEG, сравнить скриншот интерфейса до и после изменения темы, проверить, не сдвинулся ли элемент вёрстки, сравнить два рендера или видеофильтра. Во всех случаях важно видеть одинаковые участки, а не два окна в разных масштабах.
Identity синхронизирует положение и масштаб: вы приближаете область и видите, как меняется каждый файл. Это точнее, чем переключаться между вкладками просмотрщика.
Что умеет приложение
- Открывает два изображения и совмещает их по пикселям.
- Поддерживает сравнение видео — полезно для проверки фильтров и рендеров.
- Позволяет увеличивать масштаб вплоть до очень крупного, вплоть до отдельных пикселей.
- Даёт перемещаться по увеличенной области с помощью полос прокрутки.
Интерфейс минималистичен: два файла, область просмотра, управление масштабом. Никаких слоёв, кривых и панелей инструментов — приложение решает одну задачу.
Установка
flatpak search identity
flatpak install flathub
flatpak run
Команда flatpak search покажет точный идентификатор пакета — копируйте его из вывода, а не угадывайте. В некоторых дистрибутивах есть пакет в репозитории, но версия может быть старше.
Как сравнивать правильно
Одинаковые условия
Сравнивайте файлы одного размера и одного кадра. Если изображения отличаются разрешением, разница в резкости будет обусловлена масштабированием, а не качеством. Для честного теста сжатия сохраните одну и ту же картинку в двух форматах с одинаковыми размерами.
Масштаб 100%
Начинайте с масштаба 100%: именно в нём видно реальную детализацию. Увеличение сверх 100% полезно для поиска артефактов, но не показывает, как изображение выглядит на экране.
Одинаковый участок
Выберите область с мелкими деталями и градиентами: небо, волосы, текст. На однородном фоне разница между форматами почти не видна, и легко сделать неверный вывод.
# подготовить тестовые файлы одного размера
convert photo.png -quality 60 photo-q60.jpg
identify photo.png photo-q60.jpg
После сравнения оцените не только артефакты, но и вес файла. Часто небольшая потеря качества оправдана двукратным уменьшением размера.
Сравнение видео
Для видео тот же принцип: два файла должны иметь одинаковое разрешение и частоту кадров. Identity позволяет остановиться на кадре и рассмотреть детали. Это удобно при настройке параметров кодирования: сравните исходник и результат с разными CRF, чтобы найти баланс.
Ограничения
Приложение не анализирует разницу автоматически: оно не подсвечивает изменённые пиксели и не считает метрики вроде PSNR или SSIM. Для численной оценки нужны другие инструменты:
ffmpeg -i original.png -i compressed.jpg -lavfi ssim -f null -
compare -metric PSNR original.png compressed.jpg null:
Кроме того, Identity не редактирует файлы. Это просмотрщик для сравнения, а не редактор. Для серьёзной работы с цветом и слоями используйте GIMP или Krita.
Практический сценарий: оптимизация картинок для сайта
Возьмите исходный скриншот, сохраните несколько вариантов с разным качеством и сравните их в Identity при 100% и 200%. Обычно разница проявляется на тексте и тонких линиях. Выберите вариант, где текст остаётся читаемым, а вес файла приемлем.
for q in 90 80 70 60; do
convert shot.png -quality $q shot-q$q.jpg
done
ls -lh shot-q*.jpg
Для скриншотов с интерфейсом часто лучше подходит PNG или WebP без потерь, а JPEG — для фотографий. Сравнение помогает принять решение, а не гадать.
Альтернативы
diffimg и PerceptualDiff сравнивают изображения попиксельно и выдают карту различий. ImageMagick compare строит наглядную маску и считает метрики. GIMP умеет накладывать слои с режимом «Разница». Но для простого визуального сравнения двух окон Identity удобнее: меньше настроек, меньше шансов ошибиться.
Сравнение скриншотов интерфейса
Отдельный сценарий — проверка вёрстки после изменений. Сделайте снимок страницы до правки и после, при одинаковом размере окна и масштабе. Откройте оба файла в Identity и найдите область, которая должна была измениться. Так видно, не сдвинулись ли соседние блоки и не поехали ли отступы.
Чтобы снимки были сопоставимы, фиксируйте ширину окна и отключите анимации. Для повторяемости удобно использовать headless-браузер:
chromium --headless --window-size=1280,900 --screenshot=before.png https://example.com
chromium --headless --window-size=1280,900 --screenshot=after.png https://example.com
Если размеры файлов совпали, сравнение будет точным. При разной ширине сначала приведите изображения к одному размеру, иначе разница в масштабе будет выдавать себя за изменение вёрстки.
Чего ожидать от сравнения видео
Видеофайлы занимают много памяти, и открытие двух больших роликов может замедлить приложение. Для проверки кодека достаточно короткого фрагмента в несколько секунд, вырезанного из исходника. Полный фильм сравнивать в таком инструменте неудобно и не нужно.
Установка и обновления
Проверьте, как именно установлен {app}: системный пакет, Snap или Flatpak. От этого зависят обновления, доступ к файлам и песочница.
# что установлено
flatpak list --app 2>/dev/null | grep -i {app}
snap list 2>/dev/null | grep -i {app}
dpkg -l 2>/dev/null | grep -i {app}
# обновить все Flatpak и Snap
flatpak update 2>/dev/null | tail -5
sudo snap refresh 2>/dev/null | head
Не держите две версии одновременно: они путают профили и настройки. Выберите один канал и используйте его.
Итог
Identity — узкий инструмент, который хорошо делает одну вещь: показывает два изображения или видео в одинаковых условиях. Он полезен дизайнерам, разработчикам и всем, кто оптимизирует графику. Начните с теста сжатия на одном скриншоте, и вы быстро увидите, где проходит граница приемлемого качества.