Portable Network Graphics

Portable Network Graphics
Визуализация изображения в формате PNG с 8-битным каналом прозрачности. Шахматный фон обычно используется в графических редакторах в качестве «прозрачного» фона.

PNG (англ. portable network graphics, сокращение произносится по-английски /pɪŋ/[1]) — растровый формат хранения графической информации, использующий сжатие без потерь. PNG был создан как для улучшения, так и для замены формата GIF графическим форматом, не требующим лицензии для использования.

Обычно файлы формата PNG имеют расширение PNG или png и используют обозначение image/png.

Содержание

История формата

Днём рождения PNG можно считать 4 января 1995 г., когда Т. Боутелл предложил в ряде конференций W3C, а с выходом 1 октября 1996 г. версии 1.0 PNG был рекомендован в качестве полноправного сетевого формата.

Область применения

Формат PNG спроектирован для замены устаревшего и более простого формата GIF, а также, в некоторой степени, для замены значительно более сложного формата TIFF (см. официальный сайт PNG или хронологическую страницу для дополнительной информации). Формат PNG позиционируется прежде всего для использования в сети Интернет и редактирования графики.

PNG поддерживает три основных типа растровых изображений[2]:

Формат PNG хранит графическую информацию в сжатом виде. Причём это сжатие производится без потерь, в отличие, например, от

  • практически неограниченное[3] количество цветов в изображении (GIF использует в лучшем случае 8-битный цвет);
  • опциональная поддержка альфа-канала;
  • возможность гамма-коррекции;
  • двумерная чересстрочная развёртка;
  • возможность расширения формата пользовательскими блоками (на этом основан, в частности, GIF был разработан фирмой CompuServe[4] в 1987 г. и доступен изначально для свободного использования[5]. Некоторое время назад, до окончания в 2004 г. действия патентов, принадлежавших Unisys, на алгоритм сжатия LZW[4], используемый в GIF, его применение в свободном программном обеспечении было затруднено. На данный момент такие затруднения сняты. PNG же с самого начала использует открытый, не запатентованный алгоритм сжатия Интернете. Этот же алгоритм используют многие программы компрессии данных, в том числе gzip (GNU zip).

    Формат PNG обладает более высокой степенью сжатия для файлов с большим количеством цветов, чем GIF, но разница составляет около 5-25 %, что недостаточно для абсолютного преобладания формата, так как небольшие 2-16 цветные файлы формат GIF сжимает с не меньшей эффективностью.

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

    Различные реализации алгоритма Deflate дают разную степень сжатия, поэтому были созданы программы для пережатия изображений с несколькими вариантами настроек в целях получения наилучшего сжатия — например, форк pngcrush 7-Zip).

    Мультипликация

    Существует одна особенность GIF, которая в PNG не реализована — поддержка множественного изображения, особенно мультипликации; PNG изначально был предназначен лишь для хранения одного изображения в одном файле.

    Для передачи анимированных изображений был разработан расширенный формат MNG, опубликованный в середине 1999 года и уже поддерживаемый в различных приложениях, однако пока так и не ставший общепринятым.

    Некоторые — в частности, разработчики Mozilla Foundation — критиковали MNG за сложность и большой размер реализации, и отсутствие обратной совместимости с PNG. В 2004 году они разработали формат веб-браузеров и программ просмотра изображений.

    Совместимость с браузерами

    Не все веб-браузеры одинаково отображают содержимое png-файла. Узким местом являются:

    1. частичная прозрачность (альфа-канал);
    2. поддержка прозрачности в палитре;
    3. гамма-коррекция.

    Проблема поддержки 32-битной (полной) прозрачности картинки формата PNG в Microsoft Internet Explorer была решена в седьмой версии браузера. Для остальных версий IE есть несколько способов, которые помогут веб-мастеру добиться прозрачности путём включения в веб-страницу специальных функций и скриптов.

    Название

    • Неофициально PNG расшифровывают как «PNG is Not GIF» («PNG — это не GIF») по аналогии с известным рекурсивным акронимом «Unix» («GNU — это не UNIX»).
    • PNG произносится по-английски так же, как слово ping[6], то есть [pɪŋ].

    См. также

    • Libpng

    Ссылки

    Примечания

    1. http://www.libpng.org/pub/png/#history(англ.)
    2. A Basic Introduction to PNG Features (англ.)
    3. В PNG количество цветов всё же имеет предел, но, в отличие от GIF, оно ограничено 248 цветами (3×16бит).
    4. 1 2 GIF (Англоязычная Википедия)
    5. Comparison of graphics file formats (Англоязычная Википедия)
    6. A Basic Introduction to PNG Features / Pronunciation(англ.)