Коротко: причина почти всегда — потеря цветового профиля (ICC) при перекодировании. Если фото снято в широкой цветовой гамме (Display P3 на iPhone, Adobe RGB в камере или Photoshop), а инструмент сжатия работает только с sRGB, цвета пересчитываются некорректно и фото выглядит темнее и тусклее. Это ограничение большинства браузерных инструментов сжатия, не порча файла: оригинал не пострадал.
Вы сжали или сконвертировали фотографию, а результат выглядит темнее, тусклее или менее насыщенным, чем оригинал, особенно это заметно на ярких красных и зелёных тонах. Файл при этом открывается нормально, просто «краски другие». Разбираемся, откуда это берётся.
Что такое цветовой профиль (ICC)
Помимо самих пикселей, изображение может хранить ICC-профиль — описание того, какой именно диапазон цветов (цветовое пространство) использован при съёмке или редактировании. Самое частое пространство — sRGB, стандарт для веба. Но многие современные камеры и смартфоны (в первую очередь iPhone в режиме «Wide Color») снимают в более широком пространстве — Display P3, а фотографы и дизайнеры в Photoshop нередко работают в Adobe RGB.
Без профиля одни и те же числовые значения пикселя (например, RGB 255, 0, 0) в разных пространствах — это физически разный цвет. ICC-профиль — это «переводчик», который говорит программе, как именно интерпретировать числа.
Почему профиль теряется при сжатии
Инструменты сжатия и конвертации (AeroPic — не исключение) декодируют изображение в сырой массив пикселей, обрабатывают его и кодируют обратно. Большинство таких пайплайнов — включая open-source WASM-кодировщики, на которых работает практически весь браузерный сегмент рынка — читают только сами пиксели и не переносят ICC-профиль в выходной файл. Итоговый файл технически валиден, но при открытии интерпретируется по умолчанию как sRGB.
Если исходное фото было в Display P3 или Adobe RGB, а на выходе программа просмотра считает его sRGB, самые насыщенные цвета (в первую очередь красные и зелёные) «сжимаются» в более узкий диапазон. Визуально это читается как потускнение или лёгкое потемнение, хотя формально ни один пиксель не «потемнел» специально.
Как проверить, это ли ваш случай
- Разница почти не видна на обычных фото (пейзажи, портреты в естественном освещении) и хорошо заметна на ярких, насыщенных цветах — красный товар, зелёная зелень, неоновая подсветка.
- Оригинал открывается в приложении камеры или фоторедакторе нормально, а после сжатия/конвертации в любом браузерном инструменте выглядит тусклее.
- Если открыть оригинал и результат рядом на одном экране и цвета отличаются только на самых ярких участках — это оно.
Как избежать
Вариант 1 — снимайте или экспортируйте сразу в sRGB
На iPhone: Настройки → Камера → Форматы → выбрать «Наиболее совместимые» вместо «Высокая эффективность»: это заставляет камеру снимать в sRGB, а не в Display P3. В Photoshop/Lightroom при экспорте выбрать профиль sRGB («Convert to Profile» → sRGB IEC61966-2.1) перед тем, как загружать фото в любой веб-инструмент.
Вариант 2 — учитывайте, что разница обычно небольшая
Для большинства задач (сайт, соцсети, маркетплейс) разница между Display P3 и sRGB после пересчёта едва заметна на глаз и не критична. Она важна, если вы делаете предметную съёмку с точной цветопередачей (например, товар, где важен точный оттенок ткани или упаковки), в этом случае экспорт в sRGB на этапе съёмки/редактирования до загрузки в любой онлайн-инструмент избавит от сюрприза.
Важно: это не порча и не баг конкретно одного сервиса, потому что так себя ведёт практически весь браузерный сегмент инструментов сжатия. Оригинальный файл с профилем при этом никуда не девается: если пересжать заново из правильно экспортированного sRGB-файла, результат будет точным.
Сожмите фото в AeroPic
Для точной цветопередачи экспортируйте исходник в sRGB перед загрузкой
Открыть компрессор →