Формат PNG — сжатие без потерь и прозрачный фон
Формат PNG: зачем он появился (патенты GIF), от W3C 1996 до третьей редакции 2025 (HDR, APNG), сжатие без потерь, чанки, прозрачность и вес фото.
PNG (Portable Network Graphics) создан в середине 1990-х, чтобы обойти патентную проблему сжатия LZW, используемого в GIF, и при этом дать больше возможностей, чем GIF. В 1996 году он стал рекомендацией W3C, а затем был стандартизирован как ISO/IEC 15948. В июне 2025 года рекомендацией W3C стала третья редакция PNG — первое обновление за 22 года после второй редакции (2003), официально включившее в стандарт анимированный PNG (APNG), цветовую информацию HDR и чанк EXIF.
Принцип сжатия
PNG — формат без потерь, он вообще не меняет значения пикселей. К каждой строке применяется фильтр, превращающий значения в легко предсказуемые — например, в «разницу с левым и верхним пикселем», — после чего данные сжимаются алгоритмом Deflate из того же семейства, что и zip. Если один цвет повторяется на большой площади, разности идут подряд нулями и сжимаются очень сильно, а фото, где каждый пиксель немного отличается, почти не сжимаются.
Если сократить число цветов до 256 и меньше и сохранить в палитровом режиме (индексированные цвета), размер можно сильно уменьшить, но само сокращение цветов — это потеря, так что результат будет отличаться от оригинала, даже если он в PNG.
Сигнатура файла и структура чанков
Файл PNG всегда начинается с 8-байтовой сигнатуры (в шестнадцатеричном виде 89 50 4E 47 0D 0A 1A 0A). Дальше идут блоки, которые называются чанками; каждый чанк состоит из длины, типа (4 символа), данных и контрольной суммы CRC.
| Чанк | Назначение |
|---|---|
| IHDR | Ширина и высота, глубина цвета, цветовой тип |
| PLTE | Палитра (для индексированных цветов) |
| tRNS | Прозрачность для палитровых и однотонных изображений |
| IDAT | Сжатые пиксельные данные (могут быть разбиты на несколько) |
| eXIf | Метаданные EXIF (официально включён в 3-ю редакцию) |
| cICP | Сведения о цветовом пространстве, включая HDR (добавлен в 3-й редакции) |
| acTL · fcTL · fdAT | Управление анимацией APNG и кадры (официально включены в 3-ю редакцию) |
| IEND | Конец файла |
Формат устроен так, что незнакомые вспомогательные чанки игнорируются, поэтому старые программы открывают файл, даже когда появляются новые возможности. Благодаря этому просмотрщики без поддержки APNG показывают первый кадр.
Прозрачность
У каждого пикселя PNG может быть альфа-канал с 256 уровнями (0–255, а в 16-битном режиме 0–65 535), что позволяет естественно передавать полупрозрачные тени и даже края волос. Поэтому PNG — стандартный формат для изображений с удалённым фоном, логотипов и иконок.
Достоинства и ограничения
- Идеален для текста, линий и диаграмм: границы остаются чёткими, а размер часто меньше, чем у JPG.
- Нет потерь при пересохранении: подходит для промежуточных файлов при редактировании.
- Неэффективен для фото: то же фото займёт в несколько раз больше места, чем в JPG.
- Поддержка APNG: по данным Can I use — с Chrome 59, Firefox 3 и Safari 8; программы без поддержки показывают только первый кадр.
Основное применение
Скриншоты, логотипы и иконки, изображения с прозрачным фоном, диаграммы и графики, исходники для редактирования. Также используется, когда типография требует файлы без потерь.
При конвертации в другие форматы
- PNG → JPG: прозрачные области нужно залить цветом фона. Если переводить скриншоты в JPG, текст может расплываться, поэтому ставьте высокое качество (PNG в JPG).
- PNG → WebP: при переводе в WebP без потерь прозрачность сохраняется, а размер часто уменьшается. По данным Google, WebP без потерь в среднем на 26% меньше PNG.
- PNG → ICO: если нужен фавикон или иконка Windows, конвертируйте PNG в ICO. Лучше использовать квадратный исходник.
- 16-битный PNG: Canvas в браузере работает с 8 битами на канал, поэтому при конвертации 16-битного оригинала веб-инструментом глубина сократится до 8 бит.
Попробовать сейчас