Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Portable Network Graphics ( PNG , официально выраженный / р ɪ ŋ / [2] [3] PING , чаще выражен / ˌ р я ɛ п я / [4] ОЭЭ -en- JEE ) является растровым-график файл формат который поддерживает сжатие данных без потерь . PNG был разработан как улучшенная, не запатентованная замена формата обмена графическими данными (GIF).

PNG поддерживает изображения на основе палитры (с палитрами 24-битных цветов RGB или 32-битных цветов RGBA ), изображения в градациях серогоальфа-каналом или без него для прозрачности) и полноцветные изображения RGB или RGBA без палитры. Рабочая группа PNG разработала формат для передачи изображений в Интернете , а не для печатной графики профессионального качества; поэтому цветовые пространства, отличные от RGB, такие как CMYK , не поддерживаются. Файл PNG содержит одно изображение в расширяемой структуре блоков , кодирование основных пикселей и другую информацию, такую ​​как текстовые комментарии и проверки целостности, задокументированные вRFC 2083. [5]

Файлы PNG используют расширение файла PNG или, pngи им присваивается тип мультимедиа MIMEimage/png . [6] PNG был опубликован как информационный RFC 2083 в марте 1997 г. и как стандарт ISO / IEC 15948 в 2004 г. [1]

История и развитие [ править ]

Мотивация для создания формата PNG была реализацией, в начале 1995 года, что Зив-Зив-Велч (LZW) сжатие данных алгоритм , используемый в Graphics Interchange Format формата (GIF) был запатентован на Unisys . Были также другие проблемы с форматом GIF, которые сделали замену желательной, особенно его ограничение в 256 цветов в то время, когда компьютеры с гораздо более продвинутыми дисплеями становились обычным явлением.

В ветке предварительного обсуждения в январе 1995 года в группе новостей usenet "comp.graphics" с темой " Мысли о формате файла, заменяющем GIF" было много предложений, которые позже станут частью формата файла PNG. В этой беседе Оливер Фромм, автор популярной программы просмотра JPEG QPEG , предложил имя PING, которое в конечном итоге стало PNG, рекурсивным акронимом, означающим, что PING не является GIF , а также .png расширением . [7]

Хотя GIF допускает анимацию , было решено, что PNG должен быть форматом одного изображения. [8] В 2001 году разработчики PNG опубликовали формат сетевой графики с несколькими изображениями (MNG) с поддержкой анимации. MNG достигла умеренной поддержки приложений, но недостаточной среди основных веб-браузеров и не использовалась дизайнерами или издателями веб-сайтов. В 2008 году некоторые разработчики Mozilla опубликовали формат переносимой анимированной сетевой графики (APNG) с аналогичными целями. APNG - это формат, который изначально поддерживается веб-браузерами на базе Gecko и Presto, а также часто используется для эскизов на Sony PlayStation Portable.системы (с использованием обычного расширения файла PNG). В 2017 году браузеры на основе Chromium приняли поддержку APNG . В январе 2020 года Microsoft Edge перешел на Chromium , унаследовав поддержку APNG . Благодаря этому все основные браузеры теперь поддерживают APNG.

  • 1 октября 1996 года: была выпущена версия 1.0 спецификации PNG, которая позже появилась как RFC 2083. 1 октября 1996 года она стала Рекомендацией W3C .
  • 31 декабря 1998 г .: Выпущена версия 1.1 с небольшими изменениями и добавлением трех новых фрагментов.
  • 11 августа 1999: Выпущена версия 1.2 с добавлением одного дополнительного фрагмента.
  • 10 ноября 2003 г .: PNG стал международным стандартом ( ISO / IEC 15948: 2003). Эта версия PNG незначительно отличается от версии 1.2 и не добавляет новых фрагментов.
  • 3 марта 2004 г .: ISO / IEC 15948: 2004 . [1]


Рабочая группа PNG [ править ]

Исходная спецификация PNG была создана специальной группой экспертов и энтузиастов компьютерной графики. Обсуждения и решения по формату проводились по электронной почте. Первоначальные авторы, перечисленные в RFC 2083 : [9]

  • Редактор: Томас Бутелл
  • Соучастник редактора: Том Лейн
  • Авторы (в алфавитном порядке по фамилии): Марк Адлер , Томас Бутелл , Кристиан Бруншен , Адам М. Костелло , Ли Дэниел Крокер , Андреас Дилгер , Оливер Фромм , Жан-Лу Гайли , Крис Херборт , Алекс Якулин , Нил Кеттлер , Том Лейн , Александр Леманн , Крис Лилли , Дэйв Мартиндейл, Оуэн Мортенсен , Кейт С. Пикенс , Роберт П. Пул , Гленн Рандерс-Персон ,Грег Рулофс , Виллем ван Шайк , Гай Шальнат , Пол Шмидт , Тим Вегнер , Джереми Воль

Формат файла [ править ]

Изображение PNG просматривается с помощью шестнадцатеричного редактора

Заголовок файла [ править ]

Файл PNG начинается с 8- байтовой подписи [10] (см. Изображение шестнадцатеричного редактора справа):

"Куски" в файле [ править ]

После того, как заголовок, приходит ряд кусков , [11] , каждый из которых передает определенную информацию об изображении. Чанки объявляются критическими или вспомогательными , и программа, обнаруживающая вспомогательный фрагмент, который она не понимает, может спокойно игнорировать его. Эта структура слоя хранения порции на основе, аналогична концепции до формата контейнера или к амижной ' с МФЛ , предназначен , чтобы позволить формат PNG , чтобы быть расширен при сохранении совместимости с более старыми версиями, он обеспечивает совместимость снизу , и эту же структуру файла ( с другой подписью и фрагментами) используется в связанном MNG ,Форматы JNG и APNG .

Блок состоит из четырех частей: длины (4 байта, [12] с прямым порядком байтов ), типа / имени блока (4 байта [13] ), данных блока (длина в байтах) и CRC (циклического избыточного кода / контрольной суммы; 4 байта [ 12] ). CRC - это CRC-32 сетевого порядка байтов, вычисляемая по типу блока и данным блока, но не по длине.

Типам блоков присваивается четырехбуквенный чувствительный к регистру тип / имя ASCII; сравните FourCC . Регистр различных букв в имени (бит 5 числового значения символа) представляет собой битовое поле, которое предоставляет декодеру некоторую информацию о природе фрагментов, которые он не распознает.

Регистр первой буквы указывает, является ли блок критическим или нет. Если первая буква в верхнем регистре, фрагмент критичен; в противном случае фрагмент является вспомогательным. Критические блоки содержат информацию, необходимую для чтения файла. Если декодер обнаруживает критический фрагмент, который он не распознает, он должен прекратить чтение файла или предоставить пользователю соответствующее предупреждение.

Регистр второй буквы указывает, является ли блок "общедоступным" (либо в спецификации, либо в реестре общедоступных блоков специального назначения) или "частным" (не стандартизованным). Прописные буквы являются общедоступными, а строчные - частными. Это гарантирует, что общедоступные и частные имена блоков никогда не будут конфликтовать друг с другом (хотя два частных имени блоков могут конфликтовать).

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

Регистр четвертой буквы указывает, можно ли копировать фрагмент редакторами, которые его не распознают. В нижнем регистре фрагмент можно безопасно скопировать независимо от степени модификации файла. В верхнем регистре его можно скопировать только в том случае, если изменения не коснулись каких-либо критических фрагментов.

Критические блоки [ править ]

Декодер должен уметь интерпретировать критические фрагменты для чтения и рендеринга файла PNG.

  • IHDRдолжен быть первым чанком; он содержит (в этом порядке) ширину изображения (4 байта); высота (4 байта); битовая глубина (1 байт, значения 1, 2, 4, 8 или 16); тип цвета (1 байт, значения 0, 2, 3, 4 или 6); метод сжатия (1 байт, значение 0); метод фильтрации (1 байт, значение 0); и метод чередования (1 байт, значения 0 «без чередования» или 1 « чередование Adam7 ») (всего 13 байтов данных). [14] Как указано в Консорциуме World Wide Web , битовая глубина определяется как «количество бит на выборку или на индекс палитры (не на пиксель)». [14]
  • PLTEсодержит палитру : список цветов.
  • IDATсодержит изображение, которое может быть разделено на несколько частей IDAT. Такое разделение немного увеличивает размер файла, но позволяет генерировать PNG в потоковом режиме. Блок IDAT содержит фактические данные изображения, которые являются выходным потоком алгоритма сжатия. [15]
  • IENDотмечает конец изображения; поле данных блока IEND имеет 0 байт / пусто. [16]

PLTEКусок имеет важное значение для цветового типа 3 ( индексированные цвета ). Это необязательно для типов цвета 2 и 6 (истинный цвет и истинный цвет с альфа-каналом) и не должно отображаться для типов цвета 0 и 4 (оттенки серого и оттенки серого с альфа-каналом).

Вспомогательные блоки [ править ]

Другие атрибуты изображения, которые могут храниться в файлах PNG, включают значения гаммы , цвет фона и текстовые метаданные . PNG также поддерживает управление цветом за счет включения профилей цветового пространства ICC . [17]

  • bKGDдает цвет фона по умолчанию. Он предназначен для использования, когда нет лучшего выбора, например, в автономных средствах просмотра изображений (но не в веб-браузерах; подробнее см. Ниже).
  • cHRMдает координаты цветности основных цветов дисплея и точки белого .
  • dSIGпредназначен для хранения цифровых подписей. [18]
  • eXIfхранит метаданные Exif . [19]
  • gAMAуказывает гамму . Блок gAMA содержит только 4 байта, и его значение представляет собой значение гаммы, умноженное на 100 000; например, значение гаммы 1 / 3,4 вычисляется как 29411,7647059 ((1 / 3,4) * (100 000)) и преобразуется в целое число (29412) для хранения. [20]
  • hIST может хранить гистограмму или общее количество каждого цвета в изображении.
  • iCCP- это цветовой профиль ICC .
  • iTXtсодержит ключевое слово и текст UTF-8 с кодировками для возможного сжатия и переводами, отмеченными тегом языка . Платформа расширяемых метаданных (XMP) использует этот блок с ключевым словом XML: com.adobe.xmp.
  • pHYsсодержит предполагаемый размер пикселя (или соотношение сторон пикселя); pHYs содержит «Пикселей на единицу, ось X» (4 байта), «Пикселей на единицу, ось Y» (4 байта) и «Спецификатор единицы» (1 байт), всего 9 байтов. [21]
  • sBIT(значащие биты) указывают точность цветопередачи исходных данных; этот блок содержит от 1 до 13 байтов. [22] [23] [24]
  • sPLT предлагает палитру для использования, если полный диапазон цветов недоступен.
  • sRGBуказывает, что используется стандартное цветовое пространство sRGB ; блок sRGB содержит только 1 байт, который используется для «цели рендеринга» (для цели рендеринга определены 4 значения - 0, 1, 2 и 3). [25] [26]
  • sTERБлок индикатора стереоизображения для стереоскопических изображений. [27]
  • tEXtможет хранить текст, который может быть представлен в ISO / IEC 8859-1 , с одной парой ключ-значение для каждого фрагмента. «Ключ» должен содержать от 1 до 79 символов. Разделитель - это нулевой символ. «Значение» может иметь любую длину, включая от нуля до максимально допустимого размера блока за вычетом длины ключевого слова и разделителя. Ни «ключ», ни «значение» не могут содержать нулевой символ. Начальные и конечные пробелы также запрещены.
  • tIME сохраняет время последнего изменения изображения.
  • tRNSсодержит информацию о прозрачности. Для проиндексированных изображений он хранит значения альфа-канала для одной или нескольких записей палитры. Для полноцветных изображений и изображений в градациях серого он хранит одно значение пикселя, которое следует рассматривать как полностью прозрачное.
  • zTXtсодержит сжатый текст (и маркер метода сжатия) с теми же ограничениями, что и tEXt.

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

Формат пикселей [ править ]

Пиксели в изображениях PNG - это числа, которые могут быть либо индексами данных выборки в палитре, либо самими данными выборки. Палитра - это отдельная таблица, содержащаяся в блоке PLTE. Данные образца для одного пикселя состоят из кортежа от одного до четырех чисел. Независимо от того, представляют ли пиксельные данные индексы палитры или явные значения выборки, числа называются каналами, и каждое число в изображении кодируется в идентичном формате.

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

Количество каналов зависит от того, является ли изображение оттенками серого или цветным, и есть ли у него альфа-канал . PNG допускает следующие комбинации каналов, называемые типом цвета .

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

  • битовое значение 1: данные изображения хранят индексы палитры. Это действительно только в сочетании со значением бита 2;
  • битовое значение 2: образцы изображения содержат три канала данных, кодирующих трихроматические цвета , в противном случае образцы изображения содержат один канал кодирования данных относительной яркости ,
  • битовое значение 4: образцы изображений также содержат альфа-канал, выраженный как линейная мера непрозрачности пикселя. Это недопустимо в сочетании со значением бита 1.

При использовании индексированных цветных изображений в палитре всегда хранятся трехцветные цвета с глубиной 8 бит на канал (24 бита на запись палитры). Дополнительно может быть включен дополнительный список 8-битных альфа-значений для записей палитры; если они не включены или короче палитры, остальные записи палитры считаются непрозрачными. В палитре не должно быть больше записей, чем позволяет глубина цвета изображения, но может быть меньше (например, если изображение с 8-битными пикселями использует только 90 цветов, тогда ему не нужны записи палитры для всех 256 цветов). Палитра должна содержать записи для всех значений пикселей, присутствующих в изображении.

Стандарт позволяет индексированным цветным PNG иметь 1, 2, 4 или 8 бит на пиксель; Полутоновые изображения без альфа-канала могут иметь 1, 2, 4, 8 или 16 бит на пиксель. Все остальное использует битовую глубину на канал 8 или 16. Допустимые комбинации приведены в таблице выше. Стандарт требует, чтобы декодеры могли читать все поддерживаемые цветовые форматы, но многие редакторы изображений могут создавать только небольшое их подмножество.

Прозрачность изображения [ править ]

PNG предлагает множество вариантов прозрачности. Для изображений с истинным цветом и оттенками серого можно объявить прозрачным либо одно значение пикселя, либо добавить альфа-канал (что позволяет использовать любой процент частичной прозрачности). Для изображений с палитрой альфа-значения могут быть добавлены к элементам палитры. Количество таких сохраненных значений может быть меньше, чем общее количество записей палитры, и в этом случае оставшиеся записи считаются полностью непрозрачными.

Предполагается, что сканирование значений пикселей для обеспечения двоичной прозрачности должно выполняться до любого уменьшения цвета, чтобы пиксели не стали непреднамеренно прозрачными. Это, скорее всего, создаст проблему для систем, которые могут декодировать изображения с 16-битным каналом (что требуется для соответствия спецификации), но выводят только 8 бит на канал (норма для всех систем, кроме самых высоких). .

Альфа- память может быть «связанной» (« предварительно умноженной ») или «несвязанной», но стандартизованная PNG [29] на «неассоциированную» («не предварительно умноженную») альфа-канал, что означает, что изображения не кодируются в альфа-канале ; излучения, представленные в RGB, не являются выбросами на уровне пикселей. Это означает, что операция over умножит выбросы RGB на альфа и не сможет правильно представить излучение и окклюзию.

Сжатие [ править ]

Пример с несколькими типами содержимого изображения
Представление битовой стоимости на пиксель для указанного выше файла PNG (красный = дорого, синий = дешево)

PNG использует двухэтапный процесс сжатия:

  • предварительное сжатие: фильтрация (прогноз)
  • сжатие: DEFLATE

PNG использует DEFLATE , непатентованный алгоритм сжатия данных без потерь , включающий комбинацию LZ77 и кодирования Хаффмана . Разрешительно лицензированные реализации DEFLATE, такие как zlib , широко доступны.

По сравнению с форматами со сжатием с потерями, такими как JPG , выбор параметра сжатия выше среднего задерживает обработку, но часто не приводит к значительно меньшему размеру файла.

Фильтрация [ править ]

Метод фильтра PNG 0 может использовать данные в пикселях A, B и C для прогнозирования значения X.
PNG с 256 цветами, что составляет всего 251 байт с предварительным фильтром. То же изображение в формате GIF будет более чем в тринадцать раз больше.

Перед применением DEFLATE данные преобразуются с помощью метода прогнозирования: один метод фильтрации используется для всего изображения, в то время как для каждой строки изображения выбирается тип фильтра, чтобы преобразовать данные, чтобы сделать их более эффективно сжимаемыми. [30] Тип фильтра, используемый для строки развертки, добавляется к строке развертки, чтобы включить встроенную декомпрессию.

В текущей спецификации PNG есть только один метод фильтрации (обозначенный как метод 0), и поэтому на практике единственный выбор - какой тип фильтра применить к каждой строке. Для этого метода фильтр предсказывает значение каждого пикселя на основе значений предыдущих соседних пикселей и вычитает предсказанный цвет пикселя из фактического значения, как в DPCM . Линия изображения, отфильтрованная таким образом, часто более сжимаема, чем линия необработанного изображения, особенно если она похожа на строку выше, поскольку отличия от предсказания обычно будут сгруппированы вокруг 0, а не распространяться по всем возможным значениям изображения. Это особенно важно при связывании отдельных строк, поскольку DEFLATE не понимает, что изображение является двухмерным объектом, а вместо этого просто видит данные изображения как поток байтов.

Существует пять типов фильтров для метода фильтрации 0; каждый тип предсказывает значение каждого байта (данных изображения до фильтрации) на основе соответствующего байта пикселя слева ( A ), пикселя вверху ( B ) и пикселя вверху и слева ( C ) или некоторая их комбинация и кодирует разницу между предсказанным значением и фактическим значением. Фильтры применяются к байтовым значениям, а не к пикселям; значения пикселей могут быть одним или двумя байтами или несколькими значениями на байт, но никогда не пересекают границы байта. Типы фильтров: [31]

Фильтр Паэта основан на алгоритме Алана В. Паэта . [32] Сравните с версией DPCM, используемой в JPEG без потерь , и с дискретным вейвлет-преобразованием с использованием окон 1 × 2, 2 × 1 или (для предсказателя Паэта) 2 × 2 окон и вейвлетов Хаара .

Сжатие дополнительно улучшается за счет адаптивного выбора типов фильтров для каждой строки. Это улучшение и эвристический метод его реализации, обычно используемый программным обеспечением для записи PNG, были созданы Ли Дэниелом Крокером , который протестировал эти методы на многих изображениях во время создания формата; [33] выбор фильтра является компонентом оптимизации размера файла, как обсуждается ниже.

Если используется чересстрочная развертка, каждый этап чересстрочной развертки фильтруется отдельно, что означает, что изображение может быть визуализировано постепенно по мере приема каждого этапа; однако чередование обычно делает сжатие менее эффективным.

Переплетение [ править ]

Иллюстрация чересстрочной развертки Adam7 на изображении 16 × 16.

PNG предлагает дополнительную двухмерную схему чересстрочной развертки с 7 проходами - алгоритм Adam7 . Это более сложная схема, чем одномерная четырехпроходная схема GIF, и позволяет видеть более четкое изображение с низким разрешением на более ранней стадии передачи, особенно если используются алгоритмы интерполяции, такие как бикубическая интерполяция . [34]

Однако 7-проходная схема имеет тенденцию уменьшать сжимаемость данных больше, чем более простые схемы.

Анимация [ править ]

Файл APNG (анимированный PNG) (отображается как статическое изображение в некоторых веб-браузерах )

Сам PNG не поддерживает анимацию. MNG - это расширение PNG, которое делает; он был разработан членами PNG Group. MNG разделяет базовую структуру и фрагменты PNG, но он значительно более сложен и имеет другую сигнатуру файла, что автоматически делает его несовместимым со стандартными декодерами PNG, что привело к тому, что MNG практически не поддерживался или не поддерживался большинством веб-браузеров или приложений.

Сложность MNG привела к предложению APNG разработчиками Mozilla Foundation. Он основан на PNG, поддерживает анимацию и проще, чем MNG. APNG предлагает возврат к отображению одного изображения для декодеров PNG, которые не поддерживают APNG. Сегодня формат APNG широко поддерживается всеми основными веб-браузерами. [35] APNG поддерживается в Firefox 3.0 и выше, Pale Moon (все версии), а последняя версия Opera поддерживает APNG, так как движок был изменен на Blink. Последняя версия Safari для iOS 8 и Safari 8 для OS X Yosemite , они используют движок WebKit, который поддерживает APNG. [36]В Chromium 59.0 добавлена ​​поддержка APNG [37] [38], за ней последовал Google Chrome. Microsoft Edge теперь поддерживает APNG с новым движком на основе Chromium.

В апреле 2007 года группа компаний PNG решила не использовать APNG. [39] Обсуждались несколько альтернатив: ANG, aNIM / mPNG, «PNG в GIF» и его подмножество «RGBA в GIF». [40] Однако в настоящее время только APNG поддерживает все основные веб-браузеры. [35]

Примеры [ править ]

Отображается в виде шестнадцатеричных редакторов , где слева значения байтов показаны в шестнадцатеричном формате , а справа их эквивалентные символы из ISO-8859-1 с нераспознанными и управляющими символами, замененными точками. Кроме того, подпись PNG и отдельные фрагменты отмечены цветом. Обратите внимание, что их легко идентифицировать из-за их удобочитаемых имен типов (в этом примере PNG, IHDR, IDAT и IEND).

Преимущества [ править ]

Причины использования этого международного стандарта могут быть следующими:

  • Переносимость : передача не зависит от программной и аппаратной платформы.
  • Полнота : возможно представление изображений в истинном цвете, индексированных цветах и ​​оттенках серого.
  • Последовательное кодирование и декодирование : позволяет генерировать и считывать потоки данных последовательно, то есть формат потока данных используется для генерации и визуализации изображений в данный момент посредством последовательной связи.
  • Прогрессивное представление : чтобы иметь возможность передавать потоки данных, которые изначально являются приближением всего изображения и постепенно улучшаются по мере получения потока данных.
  • Устойчивость к ошибкам передачи : правильно определяет ошибки передачи потока данных.
  • Без потерь : без потерь: фильтрация и сжатие сохраняют всю информацию.
  • Эффективность : любое прогрессивное представление, сжатие и фильтрация изображений требует эффективного декодирования и представления.
  • Сжатие : изображения можно сжимать эффективно и последовательно.
  • Легкость : внедрить стандарт легко.
  • Взаимозаменяемость : любой декодер PNG, соответствующий стандартам, может читать все потоки данных PNG.
  • Гибкость : допускает будущие расширения и частные добавления, не затрагивая предыдущий пункт.
  • Свобода юридических ограничений : используемые алгоритмы бесплатны и доступны.

Сравнение с другими форматами файлов [ править ]

Формат обмена графикой (GIF) [ править ]

  • На небольших изображениях формат GIF может быть более сжатым, чем PNG (см. Раздел «Размер файла» ниже).
  • На большинстве изображений, за исключением указанного выше случая, файл GIF имеет больший размер, чем проиндексированное изображение PNG.
  • PNG предоставляет гораздо более широкий диапазон параметров прозрачности, чем GIF, включая прозрачность альфа-канала .
  • В то время как GIF ограничен 8-битным индексированным цветом , PNG дает гораздо более широкий диапазон глубины цвета, включая 24-битный (8 бит на канал) и 48-битный (16 бит на канал) истинный цвет, что обеспечивает большую точность цветопередачи и плавность затухание и т. д. [41] При добавлении альфа-канала возможно разрешение до 64 бит на пиксель (до сжатия).
  • При преобразовании изображения из формата PNG в GIF качество изображения может пострадать из-за постеризации, если изображение PNG имеет более 256 цветов.
  • GIF по своей сути поддерживает анимированные изображения. PNG поддерживает анимацию только через неофициальные расширения (см. Раздел об анимации выше).

Изображения PNG менее широко поддерживаются старыми браузерами. В частности, IE6 имеет ограниченную поддержку PNG. [42]

JPEG [ править ]

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

Формат JPEG (Joint Photographic Experts Group) может создавать файл меньшего размера, чем PNG для фотографических (и похожих на фотографии) изображений, поскольку JPEG использует метод кодирования с потерями, специально разработанный для данных фотографических изображений, в которых обычно преобладают мягкие, малоконтрастные переходы, а также количество шума или подобных нерегулярных структур. Использование PNG вместо высококачественного JPEG для таких изображений приведет к значительному увеличению размера файла при незначительном увеличении.повышение качества. Для сравнения: при сохранении изображений, содержащих текст, штриховые рисунки или графику - изображения с резкими переходами и большими областями сплошного цвета - формат PNG может сжимать данные изображения больше, чем JPEG. Кроме того, PNG не имеет потерь, в то время как JPEG создает визуальные артефакты вокруг высококонтрастных областей. (Такие артефакты зависят от настроек, используемых при сжатии JPG; они могут быть весьма заметны при использовании настройки низкого качества [высокое сжатие].) Если изображение содержит как резкие переходы, так и фотографические части, необходимо выбирать между два эффекта. JPEG не поддерживает прозрачность.

Сжатие с потерями в JPEG также страдает от потери генерации , когда многократное декодирование и перекодирование изображения для его повторного сохранения каждый раз приводит к потере информации, ухудшающей качество изображения. Поскольку PNG не содержит потерь, он подходит для хранения изображений для редактирования. Хотя PNG достаточно эффективен при сжатии фотографических изображений, существуют форматы сжатия без потерь, разработанные специально для фотографических изображений, например, WebP без потерь и Adobe DNG (цифровой негатив). Однако эти форматы либо широко не поддерживаются, либо являются собственностью. Изображение может быть сохранено без потерь и преобразовано в формат JPEG только для распространения, что исключает потерю генерации.

Хотя спецификация PNG явно не включает стандарт для встраивания данных изображения Exif из таких источников, как цифровые камеры, предпочтительным методом встраивания данных EXIF ​​в PNG является использование некритической метки вспомогательного фрагмента eXIf. [43]

Ранние веб-браузеры не поддерживали изображения PNG; JPEG и GIF были основными форматами изображений. JPEG обычно использовался при экспорте изображений, содержащих градиенты, для веб-страниц из-за ограниченной глубины цвета GIF. Однако сжатие JPEG приводит к небольшому размытию градиента. Формат PNG воспроизводит градиент с максимальной точностью для заданной глубины цвета, сохраняя при этом небольшой размер файла. PNG стал оптимальным выбором для небольших градиентных изображений, поскольку поддержка формата веб-браузером улучшилась. Для отображения градиентов в современных браузерах совсем не нужны изображения, поскольку градиенты можно создавать с помощью CSS .

JPEG-LS [ править ]

JPEG-LS - это формат изображения, разработанный Объединенной группой экспертов по фотографии , хотя он гораздо менее широко известен и поддерживается, чем другой формат JPEG с потерями, описанный выше. Он напрямую сопоставим с PNG [ требуется пояснение ] и имеет стандартный набор тестовых изображений. [44] В Waterloo Repertoire ColorSet, стандартном наборе тестовых изображений (не связанных с набором тестов на соответствие JPEG-LS), JPEG-LS обычно работает лучше, чем PNG, на 10–15%, но с некоторыми изображениями PNG работает значительно лучше. , порядка 50–75%. [45] Таким образом, если оба этих формата являются вариантами и размер файла является важным критерием, следует учитывать оба этих формата в зависимости от изображения.

TIFF [ править ]

Tagged Image File Format (TIFF) - это формат, который включает чрезвычайно широкий спектр параметров. Хотя это делает TIFF полезным в качестве универсального формата для обмена между профессиональными приложениями для редактирования изображений, добавление его поддержки в приложения становится гораздо более сложной задачей, и поэтому он практически не поддерживается в приложениях, не связанных с манипуляциями с изображениями (например, в веб-браузерах). Высокий уровень расширяемости также означает, что большинство приложений предоставляют только подмножество возможных функций, что может создать путаницу для пользователей и проблемы совместимости.

Наиболее распространенным универсальным алгоритмом сжатия без потерь, используемым с TIFF, является алгоритм Лемпеля – Зива – Велча (LZW). Этот метод сжатия, также используемый в GIF, был защищен патентами до 2003 года. TIFF также поддерживает алгоритм сжатия, используемый PNG (т. Е. Compression Tag 0008 16 « Adobe -style») со средним использованием и поддержкой приложениями. TIFF также предлагает специальные алгоритмы сжатия без потерь, такие как CCITT Group IV , которые могут сжимать двухуровневые изображения (например, факсы или черно-белый текст) лучше, чем алгоритм сжатия PNG.

PNG поддерживает только альфа без предварительного умножения [29], тогда как TIFF также поддерживает «связанный» (предварительно умноженный) альфа.

Поддержка программного обеспечения [ править ]

Официальной эталонной реализацией формата PNG является библиотека программирования libpng . [46] Он публикуется как свободное программное обеспечение в соответствии с условиями разрешающей лицензии на свободное программное обеспечение . Следовательно, он обычно является важной системной библиотекой в ​​бесплатных операционных системах.

Поддержка редактора растровой графики для PNG [ править ]

Формат PNG широко поддерживается графическими программами, в том числе Adobe Photoshop , Corel «s Photo-Paint и Paint Shop Pro , в GIMP , GraphicConverter , Helicon Filter , ImageMagick , Inkscape , IrfanView , редактор изображений , Pixel, Paint.NET и Xara Photo & Графический дизайнер и многие другие. Некоторые программы в комплекте с популярными операционными системами , которые поддерживают PNG включают Microsoft «сек Paint и Apple , » s Фотографии /iPhoto и Preview , причем GIMP также часто входит в комплект популярных дистрибутивов Linux .

Adobe Fireworks (ранее Macromedia ) использует PNG в качестве собственного формата файла, что позволяет другим редакторам изображений и служебным программам предварительного просмотра просматривать сведенное изображение. Однако Fireworks по умолчанию также хранит метаданные для слоев, анимации, векторных данных, текста и эффектов. Такие файлы не должны распространяться напрямую. Вместо этого Fireworks может экспортировать изображение как оптимизированный PNG без дополнительных метаданных для использования на веб-страницах и т. Д. [ Необходима ссылка ]

Поддержка PNG веб-браузером [ править ]

Поддержка PNG впервые появилась в Internet Explorer 4.0b1 (32-разрядная версия только для NT) и в Netscape 4.04. [47]

Несмотря на призывы Фонда свободного программного обеспечения [48] и Консорциума Всемирной паутины (W3C), [49] таких инструментов, как gif2png, [50] и таких кампаний, как Burn All GIFs, [51] принятие PNG на веб-сайтах было довольно медленным из-за к поздней и ошибочной поддержке в Internet Explorer, особенно в отношении прозрачности. [52]

PNG-совместимые браузеры включают: Apple Safari , Google Chrome , Mozilla Firefox , Opera , Camino , Internet Explorer 7 (по-прежнему много проблем), [53] Internet Explorer 8 (по-прежнему некоторые проблемы), Internet Explorer 9 и многие другие. Полное сравнение см. В разделе Сравнение веб-браузеров (поддержка форматов изображений) .

В частности, версии Internet Explorer (Windows) ниже 9.0 имеют множество проблем, которые не позволяют правильно отображать изображения PNG. [53]

  • 4.0 вылетает на больших фрагментах PNG. [54]
  • 4.0 не включает функции для просмотра файлов .png [55], но есть исправление реестра. [53]
  • 5.0 и 5.01 не поддерживают OBJECT. [56]
  • 5.01 печатает изображения палитры с черным (или темно-серым) фоном под Windows 98, иногда с радикально измененными цветами. [57]
  • 6.0 не отображает изображения PNG размером 4097 или 4098 байт. [58]
  • 6.0 не может открыть файл PNG, содержащий один или несколько блоков IDAT нулевой длины. Впервые эта проблема была исправлена ​​в обновлении безопасности 947864 (MS08-024). Дополнительные сведения см. В статье базы знаний Майкрософт: 947864 MS08-024: Накопительное обновление безопасности для Internet Explorer. [59]
  • 6.0 иногда полностью теряет способность отображать PNG, но есть разные исправления. [60]
  • 6.0 и ниже не поддерживают прозрачность альфа-канала (вместо этого будет отображаться цвет фона по умолчанию). [61] [62] [63]
  • 7.0 и ниже не могут сочетать 8-битную альфа-прозрачность И непрозрачность элемента ( CSS - filter: Alpha (opacity = xx)) без заполнения частично прозрачных участков черным цветом. [64]
  • 8.0 и ниже имеют несовместимую / неработающую поддержку гаммы. [53]
  • 8.0 и ниже не поддерживают цветокоррекцию. [53]

Поддержка операционной системой значков PNG [ править ]

Иконки PNG поддерживаются в большинстве дистрибутивов Linux, по крайней мере, с 1999 года, в таких средах рабочего стола, как GNOME . [65] В 2006 году Microsoft Windows поддерживает значки PNG в Windows Vista . [66] Иконки PNG поддерживаются в AmigaOS 4 , AROS , macOS , iOS и MorphOS . Кроме того, Android широко использует PNG.

Размер файла и программное обеспечение для оптимизации [ править ]

Размер файла PNG может существенно различаться в зависимости от того, как он закодирован и сжат; это обсуждается, и ряд советов дан в PNG: Полное руководство. [45]

По сравнению с GIF [ править ]

По сравнению с файлами GIF файл PNG с той же информацией (256 цветов, без дополнительных фрагментов / метаданных), сжатый эффективным компрессором, обычно меньше, чем изображение GIF. В зависимости от файла и компрессора PNG может варьироваться от несколько меньшего (10%) до значительно меньшего (50%) и несколько большего (5%), но редко бывает значительно больше [45] для больших изображений. Это связано с производительностью DEFLATE PNG по сравнению с LZW GIF., и поскольку добавленный уровень предварительного сжатия прогнозных фильтров PNG учитывает структуру 2-мерного изображения для дальнейшего сжатия файлов; поскольку отфильтрованные данные кодируют различия между пикселями, они будут стремиться к кластеризации ближе к 0, а не распределяться по всем возможным значениям, и, таким образом, их легче сжимать с помощью DEFLATE. Однако некоторые версии Adobe Photoshop , CorelDRAW и MS Paint обеспечивают плохое сжатие PNG, создавая впечатление, что GIF более эффективен. [45]

Факторы размера файла [ править ]

Файлы PNG различаются по размеру из-за ряда факторов:

глубина цвета
Глубина цвета может составлять от 1 до 64 бит на пиксель.
вспомогательные части
PNG поддерживает метаданные - это может быть полезно для редактирования, но не обязательно для просмотра, как на веб-сайтах.
переплетение
Поскольку каждый проход алгоритма Adam7 фильтруется отдельно, это может увеличить размер файла. [45]
фильтр
На этапе предварительного сжатия каждая строка фильтруется прогнозирующим фильтром, который может изменяться от строки к строке. Поскольку последний шаг DEFLATE работает с отфильтрованными данными всего изображения, невозможно оптимизировать эту строку за строкой; Таким образом, выбор фильтра для каждой строки потенциально очень разнообразен, хотя эвристика существует. [примечание 1]
сжатие
С дополнительными вычислениями компрессоры DEFLATE могут создавать файлы меньшего размера.

Таким образом, существует компромисс размера файла между высокой глубиной цвета, максимальными метаданными (включая информацию о цветовом пространстве вместе с информацией, которая не влияет на отображение), чересстрочной разверткой и скоростью сжатия, которые все дают большие файлы с меньшей глубиной цвета, меньшим количеством или без вспомогательных фрагментов, без чередования и настроенной, но требующей интенсивных вычислений фильтрации и сжатия. Для разных целей выбираются разные компромиссы: максимальный файл может быть лучшим для архивирования и редактирования, тогда как урезанный файл может быть лучше для использования на веб-сайте, и такое же быстрое, но плохое сжатие предпочтительнее при многократном редактировании и сохранении файл, хотя медленное, но высокое сжатие предпочтительнее, когда файл стабилен: при архивировании или публикации. Чередование - это компромисс: он значительно ускоряет ранний рендеринг больших файлов (уменьшает задержку),но может увеличить размер файла (уменьшить пропускную способность) с небольшим выигрышем, особенно для небольших файлов.[45]

Сжатие PNG с потерями [ править ]

Хотя PNG является форматом без потерь, кодировщики PNG могут предварительно обрабатывать данные изображения с потерями, чтобы улучшить сжатие PNG. Например, квантование полноцветного PNG до 256 цветов позволяет использовать индексированный цветовой тип для вероятного уменьшения размера файла. [67]

Программное обеспечение для редактирования изображений [ править ]

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

Многие графические программы (например, программа Apple Preview ) сохраняют PNG с большим объемом метаданных и данных цветокоррекции, которые обычно не нужны для просмотра в Интернете . Неоптимизированные файлы PNG из Adobe Fireworks также известны этим, поскольку они содержат параметры, позволяющие сделать изображение доступным для редактирования в поддерживаемых редакторах. Кроме того, CorelDRAW (по крайней мере версия 11) иногда создает файлы PNG, которые невозможно открыть в Internet Explorer (версии 6–8).

Производительность Adobe Photoshop с файлами PNG улучшилась в CS Suite при использовании функции «Сохранить для Интернета» (которая также допускает явное использование PNG / 8).

Adobe Fireworks по умолчанию сохраняет файлы PNG большего размера, чем многие программы. Это связано с особенностями формата сохранения : изображения, созданные функцией сохранения Fireworks, включают большие частные фрагменты, содержащие полную информацию о слоях и векторах. Это позволяет дальнейшее редактирование без потерь. При сохранении с параметром « Экспорт » PNG-файлы Fireworks могут конкурировать с PNG-изображениями, созданными другими редакторами изображений, но их больше нельзя редактировать как что-либо, кроме плоских растровых изображений. Fireworks не может сохранять файлы PNG с оптимизированным размером и редактируемыми векторами.

К другим примечательным примерам плохих компрессоров PNG относятся:

  • Microsoft Paint для Windows XP
  • Microsoft Picture It! Фото Премиум 9

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

Когда глубина цвета полноцветного изображения уменьшается до 8-битной палитры (как в GIF), результирующие данные изображения обычно намного меньше. Таким образом, полноцветный PNG обычно больше, чем GIF с уменьшенным цветом, хотя PNG может хранить версию с уменьшенным цветом как файл с палитрой сопоставимого размера. И наоборот, некоторые инструменты при сохранении изображений в формате PNG автоматически сохраняют их как истинные цвета, даже если исходные данные используют только 8-битный цвет, что приводит к излишнему раздуванию файла. [45] Оба фактора могут привести к неправильному представлению о том, что файлы PNG больше, чем эквивалентные файлы GIF.

Инструменты оптимизации [ править ]

Доступны различные инструменты для оптимизации файлов PNG; они делают это:

  • (необязательно) удаление вспомогательных фрагментов,
  • уменьшение глубины цвета:
    • используйте палитру (вместо RGB), если изображение имеет 256 или меньше цветов,
    • используйте меньшую палитру, если изображение имеет 2, 4 или 16 цветов, или
    • (необязательно) отбросить с потерями некоторые данные в исходном изображении,
  • оптимизация построчного выбора фильтра, и
  • оптимизация сжатия DEFLATE.

Список инструментов [ править ]

  • pngcrush - самый старый из популярных оптимизаторов PNG. Он позволяет проводить несколько испытаний по выбору фильтра и аргументам сжатия и, наконец, выбирает наименьший из них. Эта рабочая модель используется практически во всех оптимизаторах png.
  • OptiPNG был вдохновлен pngcrush, но выполняет итерацию по более широкому диапазону параметров сжатия и выполняет испытания в памяти для более быстрого выполнения. [68] Основная цель OptiPNG - уменьшить размер потока данных PNG IDAT путем использования различных методов фильтрации и сжатия. Он также выполняет автоматическое уменьшение глубины цвета, типа цвета и цветовой палитры, где это возможно, и может исправлять некоторые ошибки целостности данных во входных файлах. (pngcrush имеет возможность уменьшить цвет в более поздних версиях.)
  • advpng и аналогичная утилита advdef в AdvanceCOMP пакете пережать PNG IDAT. Различные реализации выкачать применяются в зависимости от выбранного уровня сжатия, торговать между скоростью и размером файла: Zlib на уровне 1, libdeflate на уровне 2, 7-Zip «с LZMA DEFLATE на уровне 3 и zopfli на уровне 4.
  • pngout был сделан с помощью собственного дефлатера автора (аналогично авторской утилите zip, kzip), с сохранением всех возможностей уменьшения / фильтрации цвета. Однако pngout не позволяет использовать несколько пробных версий фильтров за один прогон. Предлагается использовать его коммерческую версию с графическим интерфейсом, pngoutwin, или использовать с оболочкой для автоматизации испытаний, или для повторного сжатия с использованием собственного дефлатера, сохраняя при этом фильтр построчно. [заметка 2]
  • zopflipng также был создан с помощью собственного дефлератора zopfli. В нем есть все функции оптимизации, которые есть у optipng и pngcrush (включая автоматизацию испытаний), при этом он обеспечивает очень хороший, но медленный дефлейтер.

Ниже приводится простое сравнение их характеристик.

До появления zopflipng на практике хорошим способом оптимизации png было использование комбинации двух инструментов в последовательности для оптимального сжатия: один, который оптимизирует фильтры (и удаляет вспомогательные фрагменты), и тот, который оптимизирует DEFLATE. Хотя pngout предлагает и то, и другое, за один прогон можно указать только один тип фильтра, поэтому его можно использовать с инструментом-оболочкой или в сочетании с optipng или pngcrush , [примечание 2] действуя как средство повторного дефлятирования, например, advdef.

Удаление вспомогательного фрагмента [ править ]

Для удаления вспомогательных фрагментов большинство инструментов оптимизации PNG имеют возможность удалять все данные цветокоррекции из файлов PNG (гамма, баланс белого, цветовой профиль ICC, стандартный цветовой профиль RGB). Это часто приводит к гораздо меньшим размерам файлов. Например, с помощью pngcrush для этого используются следующие параметры командной строки:

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB InputFile.png OutputFile.png

Вспомогательные фрагменты также могут быть удалены без потерь с помощью бесплатной Win32-программы PNGExtra .

Оптимизация фильтра [ править ]

Все OptiPNG, pngcrush, pngout и zopflipng предлагают варианты, применяя один из типов фильтров 0–4 глобально (с использованием одного и того же типа фильтра для всех строк) или с «псевдофильтром» (пронумерованным 5), который для каждой строки выбирает один из фильтры типов 0–4 с использованием адаптивного алгоритма. Zopflipng предлагает 3 различных адаптивных метода, включая поиск методом перебора, который пытается оптимизировать фильтрацию. [примечание 7]

pngout и zopflipng предоставляют возможность сохранить / повторно использовать [примечание 2] [примечание 8] набор построчных фильтров, присутствующий во входном изображении.

OptiPNG, pngcrush и zopflipng предоставляют возможность попробовать разные стратегии фильтрации за один запуск и выбрать лучшую. Бесплатная версия pngout для командной строки не предлагает этого, в отличие от коммерческой версии pngoutwin. [примечание 9]

ОТКАЗАТЬ оптимизацию [ править ]

zopfli и LZMA SDK используют реализации DEFLATE, которые обеспечивают более высокую степень сжатия, чем эталонная реализация zlib, за счет снижения производительности. AdvanceCOMP «s advpngи advdefможет использовать любой из этих библиотек повторно компресс PNG файлов. Кроме того, PNGOUT содержит свою собственную запатентованную реализацию DEFLATE.

advpng не имеет возможности применять фильтры и всегда использует фильтр 0 глобально (оставляя данные изображения неотфильтрованными); поэтому его не следует использовать там, где фильтрация дает значительную пользу изображению. В отличие от этого, advdef из того же пакета не имеет дело со структурой PNG и действует только как средство повторного дефлятирования, сохраняя все существующие настройки фильтра.

Оптимизация иконок [ править ]

Поскольку значки, предназначенные для Windows Vista и более поздних версий, могут содержать фрагменты изображений PNG, к ним также можно применить оптимизацию. По крайней мере, один редактор значков , Pixelformer , может выполнять специальный проход оптимизации при сохранении файлов ICO , тем самым уменьшая их размер. FileOptimizer (упомянутый выше) также может обрабатывать файлы ICO.

Иконки для macOS также могут содержать субизображения PNG, но такой инструмент недоступен.

См. Также [ править ]

  • Компьютерная графика , в том числе:
    • Сравнение браузерных движков (поддержка графики)
  • Редактирование изображений
  • Форматы файлов изображений
  • Связанные форматы графических файлов
    • PNG APNG
    • Сетевая графика JPEG (JNG)
    • Сетевая графика с несколькими изображениями (MNG)
  • Похожие форматы файлов
    • X PixMap для портативных иконок
  • Масштабируемая векторная графика
  • WebP
  • IrfanView

Заметки [ править ]

  1. ^ Фильтрация используется для увеличения сходства с данными, следовательно, для увеличения степени сжатия. Однако теоретически не существует формулы для подобия или абсолютной взаимосвязи между подобием и компрессором, поэтому, если сжатие не будет выполнено, нельзя сказать, что один набор фильтров лучше другого.
  2. ^ a b c d Используйте pngout -f6, чтобы повторно использовать предыдущий набор фильтров
  3. ^ Инструменты, предлагающие такую ​​функцию, могли бы действовать как чистое повторно дефлятер для файлов PNG.
  4. ^ zlib , эталонная реализация deflate, сжатие неоптимально даже на максимальном уровне. См. Zopfli , формат zip в 7-zip и pngout .
  5. ^ Мало того, что advpng не поддерживает уменьшение цвета, он также не работает с изображениями с уменьшенным цветовым пространством
  6. ^ Advpng может применять только фильтр 0 глобально, поэтому это ни да, ни нет, но N / A.
  7. ^ [optipng | pngcrush | pngout] -f ИЛИ zopflipng --filters
  8. ^ zopflipng --filters = p
  9. ^ Диалоговое окно настройки Pngoutwin для оптимизации предлагает пользователю выбор стратегий фильтрации.

Ссылки [ править ]

  1. ^ a b c «ISO / IEC 15948: 2004 - Информационные технологии - Компьютерная графика и обработка изображений - Переносимая сетевая графика (PNG): Функциональная спецификация» . Проверено 19 февраля 2011 года .
  2. ^ "История PNG" . Libpng.org. 29 мая 2010 . Проверено 20 октября 2010 года .
  3. ^ «Стандарт МЭК (область применения)» . 10 ноября 2003 г.
  4. ^ «Определение существительного PNG из Оксфордского словаря для продвинутых учащихся» . Словари Oxford Learner's . Проверено 21 января 2018 .
  5. ^ Т. Бутелл; и другие. (Март 1997 г.). «PNG (Portable Network Graphics) Specification Version 1.0» . RFC 2083 . IESG . сек. 3. DOI : 10,17487 / RFC2083 .
  6. ^ "Регистрация нового изображения типа носителя / png" . IANA . 27 июля 1996 г.
  7. ^ ТВН (6 января 1995). «Мысли о GIF-замене файлового формата» . Groups.google.com . Проверено 20 октября 2010 года .
  8. ^ "Стандарт PNG, раздел 8.4" . PNG сам по себе является форматом с одним изображением. (...) В будущем может быть определен формат нескольких изображений на основе PNG. Такой формат будет считаться отдельным форматом файла.
  9. ^ Томас Бутеллом (1 марта 1997). «PNG (Portable Network Graphics) Specification 1.0» .
  10. ^ Подпись файла PNG
  11. ^ Макет чанка
  12. ^ a b https://books.google.com/books?id=lvMxDwAAQBAJ&pg=PT686#v=onepage&f=false - "Каждый патрон [имеет ...]: длину, тип блока, данные блока и 32 -битовая CRC. Длина - это 32-битовое целое число без знака, указывающее размер только поля Chunk Data "
  13. ^ https://books.google.com/books?id=lvMxDwAAQBAJ&pg=PT686 - «Тип блока - это 32-битный код FourCC, такой как IHDR, IDAT или IEND».
  14. ^ a b «Спецификация переносимой сетевой графики (PNG) (второе издание)» . W3.org . Проверено 8 августа +2016 .
  15. ^ «Спецификация переносимой сетевой графики (PNG) (второе издание)» . W3.org . Проверено 1 мая 2013 года .
  16. ^ https://www.w3.org/TR/PNG/#11IEND
  17. ^ «Спецификация переносимой сетевой графики (PNG) (второе издание) Информационные технологии - Компьютерная графика и обработка изображений - Переносимая сетевая графика (PNG): функциональная спецификация. ISO / IEC 15948: 2003 (E) Рекомендация W3C от 10 ноября 2003 г.») .
  18. Томас Копп (17 апреля 2008 г.). «Цифровые подписи PNG: спецификация расширения» .
  19. ^ «Расширения к спецификации PNG 1.2, версия 1.5.0» .
  20. ^ https://www.w3.org/TR/PNG/#11gAMA
  21. ^ https://www.w3.org/TR/PNG/#11pHYs - редактор: Дэвид Дьюс, Университет Оксфорд Брукс
  22. ^ https://www.w3.org/TR/PNG/#11sBIT - «Спецификация переносимой сетевой графики (PNG) (второе издание)», всего 10 байт - цветовой тип 2 и 3 всего 3 байта
  23. ^ https://www.w3.org/TR/PNG-Chunks.html - под заголовком «PNG (Portable Network Graphics) Specification \ Version 1.0»> 4.2.6. sBIT Значимые биты, всего 13 байт - цветовые типы 2 и 3 в сумме составляют 6 байтов
  24. ^ http://www.libpng.org/pub/png/book/chapter11.html#png.ch11.div.7 - цитата: «Изображения в градациях серого являются самыми простыми; в этом случае sBIT содержит один байт, указывающий количество значащих битов. в исходных данных "
  25. ^ http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.sRGB
  26. ^ https://www.w3.org/TR/PNG/index-noobject.html#11sRGB - «Спецификация переносимой сетевой графики (PNG) (второе издание)» (второе издание является последним изданием)
  27. ^ "Новости PNG за 2006 год" . Libpng.org.
  28. ^ Спецификация Portable Network Graphics (PNG) (второе издание): 11.2.2 Заголовок изображения IHDR .
  29. ^ a b "PNG Спецификация: Обоснование" . w3.org .
  30. ^ «Спецификация Portable Network Graphics (PNG) (Second Edition): 9 Filtering» . W3.org . Проверено 20 октября 2010 года .
  31. ^ «Алгоритмы фильтров» . PNG Спецификация .
  32. ^ Paeth, Алан W. (1991). Арво, Джеймс (ред.). «Упрощенное сжатие файлов изображений». Самоцветы графики 2 . Academic Press, Сан-Диего: 93–100. DOI : 10.1016 / B978-0-08-050754-5.50029-3 . ISBN 0-12-064480-0.
  33. Перейти ↑ Crocker, Lee Daniel (июль 1995 г.). «PNG: формат переносимой сетевой графики» . Журнал доктора Добба . 20 (232): 36–44.
  34. ^ «Введение в PNG» . nuwen.net . Проверено 20 октября 2010 года .
  35. ^ a b «Могу ли я использовать ... Таблицы поддержки HTML5, CSS3 и т. д.» . caniuse.com . Проверено 6 февраля 2021 года .
  36. ^ «iOS 8 и iPhone 6 для веб-разработчиков и дизайнеров: следующая эволюция Safari и нативных веб-приложений» . mobilexweb.com. 17 сентября 2014 . Проверено 24 сентября 2014 года .
  37. ^ Скрогго (14 марта 2017 г.). "хром / хром / src / 7d2b8c45afc9c0230410011293cc2e1dbb8943a7" . chromium.googlesource.com . Проверено 31 марта 2017 года .
  38. ^ хром-хрон; и другие. (27 марта 2017 г.). «хром / хром / src / 59.0.3047.0..59.0.3053.0» . chromium.googlesource.com . Проверено 31 марта 2017 года .
  39. ^ «Голосование не удалось: APNG 20070405a» . 20 апреля 2007 года Архивировано из оригинала 3 февраля 2008 года.
  40. ^ "Сравнение предложений групповой анимации PNG + тестовое программное обеспечение" . xs4all.nl . Архивировано из оригинала 24 января 2009 года.
  41. ^ «Основное введение в функции PNG» . Libpng.org . Проверено 20 октября 2010 года .
  42. ^ "GIF, PNG, JPG. Какой из них использовать?" . Sitepoint.com. 3 августа 2009 . Проверено 20 октября 2010 года .
  43. ^ «Расширения к спецификации PNG 1.2, версия 1.5.0» . Дата обращения 5 мая 2020 .
  44. ^ «T.87: Сжатие без потерь и почти без потерь неподвижных изображений с непрерывным тоном - Базовая линия» . Международный союз электросвязи . Проверено 20 марта 2011 года .
  45. ^ a b c d e f g Глава 9. Сжатие и фильтрация в PNG: Полное руководство Грега Рулофса.
  46. ^ "libpng" . Проверено 13 июля 2013 года .
  47. ^ «Использование изображений PNG для отображения данных» . Центр водных наук штата Орегон. 16 февраля 2006 г.
  48. ^ «Почему на веб-страницах GNU нет файлов GIF» . Операционная система GNU . 16 декабря 2008 г.
  49. ^ "Информационный бюллетень PNG" . Консорциум World Wide Web . 7 октября 1996 г.
  50. ^ "Страница ресурсов для gif2png 2.5.11" . catb.org .
  51. ^ «Записать все гифки» . burnallgifs.org .
  52. ^ «Прозрачность PNG в Internet Explorer» . Журнал ПК . 5 октября 2004 г.
  53. ^ a b c d e «Браузеры с поддержкой PNG» . 14 марта 2009 г.
  54. ^ «Проводник Windows аварийно завершает работу, когда я щелкаю файл PNG Fireworks для его просмотра» . Adobe Systems . 5 июня 2007 г.
  55. ^ «Невозможно просмотреть изображения .png в Internet Explorer 4.0» . База знаний Microsoft .
  56. ^ «PNG, находящиеся внутри тега объекта, печатаются как негативное изображение» . База знаний Microsoft .
  57. ^ «Изображения PNG печатаются неправильно в Internet Explorer 5.01» . База знаний Microsoft .
  58. ^ «Вы не можете просматривать некоторые изображения PNG в Internet Explorer 6» . База знаний Microsoft .
  59. ^ «Вы не можете использовать Internet Explorer 6, чтобы открыть файл PNG, содержащий один или несколько блоков IDAT нулевой длины» . База знаний Microsoft .
  60. ^ «Часто задаваемые вопросы в формате PNG» .
  61. ^ «Доктор философии: переносимая сетевая графика теряет прозрачность в веб-браузере» . База знаний Microsoft .
  62. ^ «Файлы PNG не показывают прозрачность в Internet Explorer» . База знаний Microsoft .
  63. ^ Ловитт, Майкл (21 декабря 2002). «Кроссбраузерная переменная непрозрачности с PNG: реальное решение» . Список отдельно . Архивировано из оригинального 22 августа 2011 года . Проверено 21 июля 2009 года .
  64. ^ "IE7 альфа-прозрачный PNG + непрозрачность" . Канал 9 . Архивировано из оригинального 27 августа 2011 года . Проверено 23 января 2009 года .
  65. ^ Фулбрайт, Майкл (1999). «Дорожная карта библиотеки GNOME 1.0» . Архивировано из оригинала на 30 января 2010 года . Проверено 19 декабря 2007 года .
  66. ^ «Windows Vista - Иконки» . OOne . 2007 . Проверено 12 ноября 2007 года .
  67. ^ «PNG может быть форматом с потерями» . Pngmini.com . Проверено 1 февраля 2014 года .
  68. ^ Truţa, Cosmin. «Руководство по оптимизации PNG» .

Дальнейшее чтение [ править ]

  • Рулофс, Грег (апрель 1997 г.). «Linux Gazette: История формата переносимой сетевой графики (PNG)» . Linux Journal . Специализированные системные консультанты, Inc. 1997 (36es). ISSN  1075-3583 .
  • Рулофс, Грег (2003). PNG: Полное руководство (2-е изд.). O'Reilly Media. ISBN 1-56592-542-4.

Внешние ссылки [ править ]

  • PNG Домашний сайт
  • Домашняя страница libpng
  • История PNG Грега Рулофса
  • W3 PNG Спецификация
  • Тестирование встроенных изображений PNG
  • RFC 2083
  • Дополнительная информация о цветокоррекции PNG
  • GD-библиотека для генерации динамических PNG-файлов с помощью PHP
  • Руководство по оптимизации PNG
  • PNG Adam7 переплетение
  • Кодирование веб-оболочек в файлах PNG : кодирование удобочитаемых данных внутри блока IDAT.