Перейти к содержимому

Изображения

Формат PNG: спецификация и направления

Направления в обе стороны: из PNG и в PNG, с параметрами каждого преобразования.

.png9 направлений из PNG18 направлений в PNG

Спецификация PNG

Спецификация PNG
Полное имяPortable Network Graphics
Разработчик спецификацииPNG Development Group, спецификация — W3C
Год публикации1996
Расширение.png
MIME-типimage/png
Тип содержимогоДвоичное
Модель сжатияБез потерь
Альфа-каналЕсть
МногостраничностьНе предусмотрена
Сжатиебез потерь (Deflate и фильтры строк)
Прозрачностьальфа-канал, 256 уровней
Глубина цветадо 16 бит на канал
Анимациячерез расширение APNG
Сильная сторонаскриншоты, логотипы, графика с текстом
Читающие программыПросмотр фотографий Windows, Фото (macOS), Adobe Photoshop, GIMP, Paint.NET, любой браузер
Документ спецификацииОткрыть спецификацию

PNG → другие форматы

Другие форматы → PNG

Документы

Направления в PNG: Документы
НаправлениеЧто получитсяТочность
.pdf.pngКонвертация PDF в PNGблизкая

Электронные книги

Направления в PNG: Электронные книги
НаправлениеЧто получитсяТочность
.djvu.pngКонвертация DJVU в PNGблизкая

Векторная графика

Направления в PNG: Векторная графика
НаправлениеЧто получитсяТочность
.svg.pngКонвертация SVG в PNGблизкая
.ai.pngКонвертация AI в PNGблизкая
.cdr.pngКонвертация CDR в PNGприблизительная
.eps.pngКонвертация EPS в PNGблизкая

Спецификация PNG

PNG собран из типизированных блоков: IHDR с геометрией и глубиной, необязательные PLTE, gAMA, iCCP, tRNS, поток IDAT и завершающий IEND. Сжатие двухступенчатое — построчная фильтрация с одним из пяти предсказателей, затем deflate. Потерь нет: декодированный массив пикселей побитово совпадает с исходным.

Формат поддерживает пять цветовых моделей: полутоновую, полноцветную, палитровую, полутоновую с альфой и полноцветную с альфой, при глубине 8 или 16 бит на канал. Альфа-канал полноценный, восьмибитный, а не однобитная маска. Именно фильтрация делает PNG эффективным на графике: строка, отличающаяся от предыдущей на постоянную величину, после предсказателя Up превращается в последовательность нулей и сжимается почти до нуля. На фотографической текстуре предсказание не работает, и файл выходит в три-пять раз тяжелее сопоставимого JPEG.

PNG-8 — не отдельный формат, а палитровая модель того же PNG: не более 256 цветов в таблице PLTE, прозрачность через блок tRNS. Файл существенно легче, но градиенты распадаются на полосы, а мягкий край логотипа при однобитной прозрачности становится ступенчатым. Разница между «оптимизированным» и обычным PNG — это работа над палитрой, порядком фильтров и удалением необязательных блоков; изображение при этом остаётся математически тем же.

Формат не хранит анимацию (расширение APNG поддерживается не всеми декодерами), не работает в CMYK и не рассчитан на многостраничность. Прозрачность теряется при переводе в JPEG — там нет альфа-канала. Ещё одна практическая деталь: 16 бит на канал полезны при промежуточном хранении в ретуши, но удваивают объём и отбрасываются большинством принимающих систем, которые работают с восемью.

Форматы того же класса

Остальные записи класса «Изображения». Для каждой заведена своя страница с полным перечнем направлений: и от PNG, и к нему.

Вопросы по формату PNG

Почему PNG со скриншотом весит десять мегабайт?

Экран 3840 × 2160 — это 8,3 миллиона пикселей, по четыре байта на каждый в модели RGBA. Сжатие без потерь на интерфейсе с плоскими заливками даёт хороший коэффициент, но фотографические обои на заднем плане и мелкий шум сводят его к минимуму. Уменьшение до реально нужной ширины сокращает файл пропорционально площади: половина стороны — четверть веса.

Что происходит с прозрачностью при переводе в JPEG?

Альфа-канал отбрасывается, а прозрачные и полупрозрачные пиксели смешиваются с подложкой. По умолчанию подложка белая, в параметрах направления её можно заменить. Полупрозрачные края при этом смешиваются корректно, но результат жёстко привязан к выбранному фону: положить такой логотип на цветную страницу без ореола уже не получится.

Даёт ли выигрыш перевод PNG в WebP без потерь?

Да, обычно 20–30 % при математически идентичном изображении: VP8L использует предсказатели на двумерном соседстве и цветовое преобразование, которых нет в схеме фильтр + deflate. Ограничения WebP при этом наследуются: сторона не более 16 383 пикселей и неполная поддержка за пределами браузеров.