AVIF в JPG: снимок, который отказывается открываться
Вы сохранили картинку с сайта, и ни одна программа на компьютере её не открывает. Это AVIF. Chrome, Edge, Firefox и Safari показывают такие файлы без единого вопроса, а большинство CDN для изображений сегодня отдают этот формат по умолчанию, поэтому он и оказался у вас, хотя вы его не выбирали. При этом старые версии Photoshop, «Просмотр фотографий Windows», типографии и множество форм загрузки это расширение по-прежнему не принимают и возвращают файл как испорченный. С вашим файлом всё в порядке. Просто он пришёл в формате, которого ещё не существовало, когда писали ваши программы.
JPG остаётся единственным растровым форматом с практически универсальной поддержкой, поэтому конвертация оказывается кратчайшим путём вернуться к картинке, которую можно отправить почтой, распечатать или загрузить в форму, которой вы не управляете. Ниже о том, что конвертер делает с вашим файлом, включая ту часть, о которой страницы конвертеров обычно молчат.
JPG почти наверняка окажется больше, чем AVIF
Любой другой конвертер обещает файл поменьше. В этой конвертации обещание неверно, и проверить это несложно. AVIF как кодек намного эффективнее JPEG, поэтому одна и та же картинка в виде JPG занимает больше байтов. Вот фотография 2000 на 1500, которая пришла как AVIF весом 138 KB и прошла через все три настройки на нашем собственном сервере:
| Настройка | Размер JPG | Относительно AVIF |
|---|---|---|
| Best quality | 426 KB | +207% |
| Recommended | 184 KB | +33% |
| Smallest | 87 KB | -37% |
Второй файл, AVIF 1200 на 900 весом всего 21 KB, повёл себя так же, только резче: +285%, затем +55%, и даже на Smallest всё ещё +4%. Правило простое: чем аккуратнее был закодирован исходный AVIF, тем меньше шансов, что хоть какой-то JPG его обгонит. Вы конвертируете ради совместимости, а не ради экономии места. Если задача действительно в размере, сожмите готовый JPG после конвертации или оставьте AVIF для сайта, а JPG используйте только там, где AVIF не принимают.
Фотографии выходят в правильном повороте
Телефон почти всегда записывает кадр горизонтально и добавляет в EXIF метку с тем, как его развернуть при показе. Конвертер, который эту метку игнорирует, возвращает каждый вертикальный снимок лежащим на боку. Здесь метка читается и применяется к самим пикселям до кодирования, а затем удаляется из готового файла. Важны обе половины работы: оставленная метка заставит Chrome, Safari, iOS и «Фотографии» Windows повернуть уже исправленный снимок второй раз, и человек получает перевёрнутую фотографию, не понимая, откуда она такая взялась.
Цвета не становятся кислотными
Современные телефоны снимают в Display P3, диапазоне заметно шире, чем sRGB. Просто выбросить профиль не значит что-то сконвертировать: те же самые числа начинают читаться по неправильной линейке, и каждый насыщенный цвет приходит перенасыщенным, кожа краснеет, небо светится неоном. Поэтому профиль по умолчанию переносится в JPG как есть. А если там, куда уедет картинка, профили не учитывают вовсе, настройка Colour profile честно пересчитает изображение в sRGB вместо того, чтобы отбросить метку и оставить числа нетронутыми.
Прозрачные области заливаются выбранным цветом
В JPEG нет альфа-канала, поэтому прозрачный фон приходится чем-то заполнить. Отдайте логотип с прозрачными углами небрежному конвертеру, и он часто вернёт его на чёрном прямоугольнике, что выглядит ровно как испорченный файл. Здесь по умолчанию стоит белый, а палитра рядом с настройками позволяет задать любой другой цвет: образцом или hex-кодом. В результате прямо написано, что прозрачность была сведена, так что изменившийся фон никогда не станет неожиданностью. Если прозрачность нужно сохранить, а не залить, возьмите AVIF в PNG.
Какую настройку выбрать
Best quality нужен для архивной копии или для того, что уходит в печать, когда рост файла в несколько раз вас не волнует. Recommended подходит всему, что будет жить на экране: потери не видны на фотографии при обычном размере просмотра. Smallest берут для почты, мессенджеров и любых мест, где реальным ограничением становится размер. Передумать и сконвертировать заново можно в любой момент и бесплатно.
Файл определяется по содержимому, а не по имени
Переименование не меняет того, что внутри, а переименовывают файлы постоянно. AVIF с расширением .jpg или файл .avif, сохранённый из браузера под чужим именем, распознаётся по собственным байтам и конвертируется правильно. AVIF в градациях серого и на выходе останется в градациях серого. Анимированный AVIF отдаст первый кадр как неподвижную картинку, и в результате об этом будет сказано прямо.
Пакетная конвертация сохраняет имена файлов
Отправьте целую папку и получите один ZIP, где каждый файл лежит под тем именем, под которым вы его прислали: photo.avif становится photo.jpg, включая арабские и китайские имена и имена с диакритикой. Один нечитаемый файл не портит всю партию: его пропускают, называют в результате вместе с причиной, а остальное конвертируется как обычно. Размер до и после показан по каждому файлу отдельно, а не одной общей суммой, по которой ничего не понять.
Что вы получаете
- JPG, который откроется в программах, написанных ещё до появления AVIF
- Фотографии в правильном повороте, с очищенной меткой ориентации, чтобы никто не развернул их снова
- Сохранённый широкий цветовой охват или честный пересчёт в sRGB, когда вы этого просите
- Прозрачные области, залитые выбранным вами цветом, а не случайным чёрным
- Те же самые размеры в пикселях, с которых вы начали, каждый раз
- Пакет, который возвращается одним ZIP с вашими исходными именами файлов
Что дальше?
Нужно сохранить прозрачный фон, а не заливать его? У AVIF в PNG есть настоящий альфа-канал, и даже частичная прозрачность останется нетронутой.
JPG уже есть, но он слишком тяжёлый для письма? Сжатие JPEG уменьшит вес, не трогая размеры изображения.
Та же история, только другой формат? HEIC в JPG разбирается с айфоновской версией ровно этой ситуации.