PNG
PNG (Portable Network Graphics, произносится «пинг») — это формат растровых графических файлов, предназначенный для хранения изображений с использованием сжатия без потерь. PNG был создан как свободный и более совершенный аналог формата GIF, лишённый его недостатков, и поддерживает палитровые, полутоновые и полноцветные изображения, а также прозрачность (альфа-канал).
История
Разработка формата PNG началась в 1994 году после того, как компания Unisys заявила о своих патентных правах на алгоритм сжатия LZW, используемый в формате GIF. Это вызвало обеспокоенность в интернет-сообществе, так как GIF был одним из основных форматов для графики в вебе. Инициативная группа разработчиков, вдохновлённая идеей создания свободного и открытого стандарта, опубликовала первую версию спецификации PNG (RFC 2083) в 1996 году. В 2003 году PNG был принят в качестве международного стандарта ISO/IEC 15948.
Основными целями при создании PNG были:
- Замена GIF в качестве свободного формата без лицензионных ограничений.
- Обеспечение лучшего сжатия без потерь, чем у GIF.
- Поддержка большего количества цветов (до 48 бит на пиксель) и альфа-канала для полупрозрачности.
- Отсутствие анимации (в отличие от GIF, анимация не была предусмотрена; позже появился формат MNG, основанный на PNG, но он не получил широкого распространения).
Характеристики и устройство
Сжатие без потерь
PNG использует алгоритм сжатия Deflate (комбинация LZ77 и кодирования Хаффмана), который позволяет уменьшать размер файла без ухудшения качества изображения. Этот метод особенно эффективен для изображений с большими однотонными областями, резкими границами и текстом.
Цветовые модели и глубина цвета
PNG поддерживает три основных типа изображений:
- Палитровые (индексированные цвета) — до 256 цветов, заданных в палитре. Используется для простой графики, иконок и рисунков с малым количеством цветов.
- Полутоновые (grayscale) — оттенки серого, с глубиной от 1 до 16 бит на канал.
- Полноцветные (truecolor) — полноцветные изображения, с глубиной 8 или 16 бит на каждый из трёх каналов (RGB). Общая глубина может достигать 48 бит на пиксель.
Прозрачность (альфа-канал)
PNG поддерживает два типа прозрачности:
- Простая бинарная прозрачность — для палитровых изображений, где один цвет в палитре объявляется полностью прозрачным.
- Полупрозрачность (альфа-канал) — для полноцветных и полутоновых изображений. Альфа-канал может иметь глубину от 1 до 16 бит, что позволяет создавать плавные переходы прозрачности (например, тени, блики, сглаживание краёв).
Интерлейсинг (чересстрочная развёртка)
PNG поддерживает интерлейсинг по алгоритму Adam7, который позволяет постепенно загружать изображение, начиная с низкого разрешения и увеличивая детализацию. Это полезно для медленных соединений, но увеличивает размер файла.
Метаданные
Формат позволяет хранить текстовые метаданные (например, автора, описание, время создания) в виде ключевых слов и значений. Также поддерживается встраивание цветовых профилей (ICC) для точной цветопередачи.
Применение
PNG является одним из наиболее распространённых форматов для веб-графики, особенно в тех случаях, где требуется:
- Чёткость и резкость — для логотипов, иконок, кнопок, скриншотов, текста и схем.
- Прозрачность — для изображений, которые должны накладываться на фон произвольного цвета (например, логотипы на сайтах, элементы интерфейса).
- Сохранение качества — для изображений, которые будут многократно редактироваться и пересохраняться (например, промежуточные версии графики).
В отличие от JPEG, PNG не подходит для хранения фотографий с плавными переходами цветов, так как сжатие без потерь приводит к большому размеру файла для таких изображений. Для фотографий обычно используется JPEG, а для фотографий с прозрачностью — PNG-24 или WebP.
Сравнение с другими форматами
| Характеристика | PNG | GIF | JPEG |
|---|---|---|---|
| Сжатие | Без потерь | Без потерь | С потерями |
| Глубина цвета | До 48 бит (truecolor + альфа) | 8 бит (256 цветов) | 24 бита (truecolor) |
| Прозрачность | Полная и полупрозрачность | Только бинарная (один цвет) | Не поддерживается |
| Анимация | Не поддерживается | Поддерживается | Не поддерживается |
| Размер файла | Большой для фотографий | Малый для простой графики | Малый для фотографий |
| Лицензия | Свободный | Свободный (патентные ограничения сняты) | Свободный |
Интересные факты
- Официальное произношение названия формата — «пинг», однако в русскоязычной среде распространено произношение «пэ-эн-гэ» или «пи-эн-джи».
- PNG поддерживает до 16 миллионов цветов (truecolor) и альфа-канал, что делает его предпочтительным для веб-дизайна, где требуется прозрачность.
- Формат PNG не поддерживает анимацию. Для анимированной графики с прозрачностью и сжатием без потерь используется формат APNG (Animated PNG), который является расширением PNG, но не является частью основного стандарта.
- В 2004 году компания Unisys признала свои патенты на LZW недействительными, что сняло юридические ограничения с использования GIF, однако PNG к тому моменту уже прочно занял свою нишу.
Источники
- ISO/IEC 15948:2003 — Information technology — Computer graphics and image processing — Portable Network Graphics (PNG): Functional specification.
- RFC 2083 — PNG (Portable Network Graphics) Specification, Version 1.0.
- W3C — Portable Network Graphics (PNG) Specification (Second Edition).
- «PNG: The Definitive Guide» by Greg Roelofs, O'Reilly Media, 1999.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →