Зачем вообще конвертировать JPG в PNG
JPG и PNG решают разные задачи. JPG, стандартизированный в 1992 году, создавался для фотографий: он отбрасывает детали, которые глаз скорее всего не заметит, и делает файлы в 5–20 раз меньше, чем несжатые пиксели. PNG появился в 1996 году как свободная от патентов замена GIF и сжимает без потерь: каждый сохранённый пиксель возвращается ровно таким же.
Конвертация не сделает фотографию красивее, но для неё есть вполне практичные причины:
- Редактирование в несколько заходов. Каждый раз, когда JPG открывают, меняют и сохраняют снова, он пережимается и теряет ещё немного качества. Работа с копией в PNG прерывает этот цикл, а в JPG вы экспортируете один раз в самом конце.
- Формы загрузки и программы, которые требуют PNG. Некоторые магазины приложений, генераторы иконок, сервисы печати, игровые движки и старые плагины CMS принимают только PNG.
- Скриншоты и графика, по ошибке сохранённые в JPG. Текст, схемы и графика с заливкой однотонными цветами страдают от артефактов JPG. Конвертация не уберёт уже появившиеся артефакты, но дальнейшие правки — например, добавленные стрелки или подписи — останутся чёткими.
- Подготовка основы для прозрачности. PNG поддерживает альфа-канал. У JPG его нет, поэтому сконвертированный файл полностью непрозрачен, но теперь он в формате, где можно стереть фон в графическом редакторе и сохранить результат.
Как здесь работает конвертация
Каждый файл декодируется встроенным декодером изображений вашего браузера и отрисовывается на canvas в исходном разрешении, после чего кодируется в PNG. Если браузер это поддерживает, обработка идёт в фоновом воркере, и страница не подвисает, пока обрабатывается пакет файлов. Ничего не загружается на сервер: изображения существуют только в памяти вкладки, пока вы их не скачаете.
Выбирать настройки не нужно, потому что у PNG нет ползунка качества: результат по определению без потерь. Файлы обрабатываются по очереди, в каждой строке показан размер до и после, а скачать их можно по одному или все сразу в ZIP-архиве.
На вход принимается и WebP. В отличие от JPG, WebP может содержать прозрачность, и этот альфа-канал сохраняется в PNG.
Что меняется, а что нет
Видимые пиксели переносятся в точности, но кое-что вокруг них не переживает перекодирование через canvas:
- Метаданные удаляются. EXIF — модель камеры, параметры экспозиции, дата съёмки и GPS-координаты — в PNG не записывается. Это удобно, если вы собираетесь публиковать изображение.
- Ориентация «вшивается» в пиксели. Фотографии с телефона часто хранят поворот в виде флага EXIF, а не поворачивают сами пиксели. Современные браузеры учитывают этот флаг при декодировании, поэтому PNG получается правильно ориентированным и от флага больше не зависит.
- Цветовые профили не встраиваются. PNG записывается в стандартном sRGB. Фотографии, снятые в широком цветовом охвате, например Display P3 на современных телефонах, могут выглядеть чуть менее насыщенными на дорогих экранах.
- Размеры не меняются. JPG размером 4000 на 3000 пикселей становится PNG размером 4000 на 3000 пикселей.
Готовьтесь к гораздо более крупным файлам
Сжатие PNG основано на поиске повторяющихся фрагментов, а в фотографиях их очень мало. Снимок с телефона весом 2 МБ нередко превращается в PNG на 10–20 МБ. Простая графика, логотипы и скриншоты увеличиваются куда меньше — иногда всего на 20–50 процентов.
Если PNG получился слишком тяжёлым для того места, куда он предназначен, помогут такие шаги:
- Уменьшите разрешение с помощью изменения размера изображения. У картинки шириной 1600 px меньше пятой части пикселей исходника шириной 4000 px, и размер PNG падает примерно пропорционально.
- Если место назначения принимает оба формата, а изображение — фотография, оставьте его в JPG. Для финальной публикации качественный JPG обычно лучше, а после редактирования можно конвертировать обратно с помощью PNG в JPG.
- Для графики с небольшим числом цветов сжатие PNG может заметно уменьшить файл без видимых изменений.
Ограничения
Каждый файл может весить до 50 МБ, а жёсткого ограничения на количество одновременно добавленных файлов нет. Для декодирования очень больших изображений, например 50-мегапиксельных снимков с камеры, нужно много памяти, поэтому телефоны могут не справиться с крупными пакетами. Если конвертация не удалась, попробуйте обрабатывать меньше файлов за раз или откройте инструмент в браузере на компьютере.