~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ D080B8136BD08F2D34CF1EF2F6CF6A74__1714991940 ✰
Заголовок документа оригинал.:
✰ PNG - Wikipedia ✰
Заголовок документа перевод.:
✰ PNG — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Portable_Network_Graphics ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/d0/74/d080b8136bd08f2d34cf1ef2f6cf6a74.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/d0/74/d080b8136bd08f2d34cf1ef2f6cf6a74__translat.html ✰
Дата и время сохранения документа:
✰ 15.06.2024 22:46:35 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 6 May 2024, at 13:39 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

PNG — Википедия Jump to content

PNG

Из Википедии, бесплатной энциклопедии

Портативная сетевая графика

Изображение PNG четырех кубиков разного цвета с 8-битным каналом прозрачности, наложенное на клетчатый фон. Обычно используется в графическом программном обеспечении для обозначения прозрачности.
Расширение имени файла
.png
Тип интернет-СМИ
image/png
Введите код PNGf
PNG
Единый идентификатор типа (UTI) общественный.png
конформация ИМВП public.image
Магическое число 89 50 4e 47 0d 0a 1a 0a (8 байт шестнадцатеричный )
Разработан Группа разработки PNG (пожертвовано W3C )
Начальная версия 1 октября 1996 г .; 27 лет назад ( 1996-10-01 )
Тип формата изображения без потерь растрового Формат
Распространено на APNG , JNG и MNG
Стандартный ИСО / МЭК 15948 , [1] IETF RFC 2083
Открытый формат ? Да
Веб-сайт

Портативная сетевая графика ( PNG , официально произносится / p ɪ ŋ / [2] [3] ПИНГ , в разговорной речи произносится / ˌ p ɛ n ˈ / [4] PEE -en- JEE ) — растровой графики файлов формат , поддерживающий сжатие данных без потерь . [5] PNG был разработан как улучшенная незапатентованная замена формата графического обмена (GIF) — неофициально инициалы PNG обозначали рекурсивную аббревиатуру «PNG's not GIF». [6]

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

Файлы PNG имеют расширение «image/png» «.png» и тип мультимедиа MIME . [8] PNG был опубликован как информационный RFC 2083 в марте 1997 года и как стандарт ISO/IEC 15948 в 2004 году. [1]

и развитие История

Мотивом для создания формата PNG стало осознание того, что 28 декабря 1994 года Лемпеля-Зива-Уэлча (LZW), сжатия данных алгоритм используемый в формате Graphics Interchange Format (GIF), запатентован Unisys был . Патент требовал, чтобы все программное обеспечение, поддерживающее GIF, платило роялти, что вызвало шквал критики со стороны пользователей Usenet . Одним из них был Томас Бутелл, который 4 января 1995 года разместил предварительную ветку обсуждения в группе новостей Usenet «comp.graphics», в которой он разработал план бесплатной альтернативы GIF. Другие пользователи в этой теме выдвинули множество предложений, которые позже станут частью окончательного формата файла. Оливер Фромм, автор популярного JPEG средства просмотра QPEG , предложил название PING, которое в конечном итоге стало PNG, рекурсивной аббревиатурой , означающей, что PING — это не GIF . [9] а также .png расширение . Другие предложения, реализованные позже, включали алгоритм сжатия Deflate и поддержку 24-битного цвета , отсутствие последнего в GIF также побудило команду создать свой формат файлов. Группа стала известна как Группа разработчиков PNG, и по мере того, как дискуссия быстро расширялась, позже она использовала список рассылки, связанный с форумом CompuServe . [2] [10]

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

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

PNG группа Рабочая

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

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

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

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

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

Значения ( шестнадцатеричные ) Цель
89 Имеет старший бит для обнаружения систем передачи, которые не поддерживают 8-битные данные , и для уменьшения вероятности ошибочной интерпретации текстового файла как PNG или наоборот.
50 4E 47 В ASCII используются буквы PNG , что позволяет человеку легко идентифицировать формат, просматривая его в текстовом редакторе.
0D 0A Окончание DOS в стиле строки (CRLF) для обнаружения преобразования данных в конце строки DOS-Unix.
1A Байт, который останавливает отображение файла в DOS при типа использовании команды — символ конца файла .
0A Окончание строки в стиле Unix (LF) для обнаружения преобразования окончания строки Unix-DOS.

«Чанки» внутри файла [ править ]

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

Чанк состоит из четырех частей: длина (4 байта, [17] big-endian ), тип/имя чанка (4 байта [18] ), данные фрагмента (длина в байтах) и CRC (циклический избыточный код/контрольная сумма; 4 байта). [17] ). сетевого порядка байтов, CRC — это CRC-32 вычисляемый по типу фрагмента и данным фрагмента, но не по длине.

Длина Тип чанка Частичные данные КПР
4 байта 4 байта Длина в байтах 4 байта

Типам фрагментов присваивается четырехбуквенный с учетом регистра тип/имя 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 байт данных). [11]

Как заявили в Консорциуме Всемирной паутины , разрядность определяется как «количество битов на образец или на индекс палитры (не на пиксель)». [11]

  • PLTE содержит палитру : список цветов.
  • IDATсодержит изображение, которое можно разделить на несколько фрагментов IDAT. Такое разделение немного увеличивает размер файла, но позволяет генерировать PNG в потоковом режиме. Блок IDAT содержит фактические данные изображения, которые являются выходным потоком алгоритма сжатия. [19]
  • IENDотмечает конец изображения; поле данных блока IEND имеет 0 байт/пусто. [20]

The PLTEchunk необходим для цветового типа 3 (индексированный цвет). Это необязательно для типов цвета два и шесть (truecolor и truecolor с альфа-каналом) и не должно появляться для типов цвета 0 и 4 (оттенки серого и оттенки серого с альфа).

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

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

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

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

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

Разрешенные комбинации типа цвета и разрядности [11]
Тип цвета каналы Битов на канал
1 2 4 8 16
Индексировано 1 1 2 4 8
Оттенки серого 1 1 2 4 8 16
Оттенки серого и альфа 2 16 32
Истинный цвет 3 24 48
Truecolor и альфа 4 32 64

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

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

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

Демонстрация глубины цвета в PNG-файле, в битах на канал. Слева: 8 бит; Справа: 16 бит. Обратите внимание на артефакты , отрегулируйте контрастность для ясности.
0 (000 2 ) оттенки серого
2 (010 2 ) красный, зеленый и синий: RGB/Truecolor
3 (011 2 ) индексированный: канал, содержащий индексы в палитре цветов
4 (100 2 ) оттенки серого и альфа: уровень непрозрачности для каждого пикселя.
6 (110 2 ) красный, зеленый, синий и альфа

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

Типы цветов PNG
Цвет
тип
Имя Двоичный Маски
  А С п
0 Оттенки серого 0 0 0 0  
2 Истинный цвет 0 0 1 0 цвет
3 Индексировано 0 0 1 1 цветовая палитра
4 Оттенки серого и альфа 0 1 0 0 альфа
6 Truecolor и альфа 0 1 1 0 альфа, цвет
  • значение бита 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. [33] на «несвязанной» («непредварительно умноженной») альфе, что означает, что изображения не кодируются в альфа-канале ; излучения, представленные в RGB, не являются выбросами на уровне пикселей. Это означает, что операция over умножит излучение RGB на альфа и не сможет правильно представить излучение и окклюзию.

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

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

  • предварительное сжатие: фильтрация (прогнозирование)
  • сжатие: УДАЛЕНИЕ

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

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

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

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

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

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

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

Введите байт Название фильтра Прогнозируемое значение
0 Никто Ноль (чтобы необработанное значение байта проходило без изменений)
1 Саб Байт А (слева)
2 Вверх Байт B (вверху)
3 Средний Среднее значение байтов A и B , округленное вниз
4 Пэт A , B или C , в зависимости от того, что ближе всего к p = A + B C

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

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

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

Чересстрочная развертка [ править ]

Иллюстрация Адам7, наложенного на изображение размером 16 × 16.

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

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

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

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

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

Сложность MNG привела к предложению APNG разработчиками Mozilla Foundation. Он основан на PNG, поддерживает анимацию и проще, чем MNG. APNG предлагает возврат к отображению одного изображения для декодеров PNG, которые не поддерживают APNG. Сегодня формат APNG поддерживается всеми основными веб-браузерами. [39] APNG поддерживается в Firefox 3.0 и более поздних версиях, Pale Moon (все версии) и Safari 8.0 и более поздних версиях. [40] В Chromium 59.0 добавлена ​​поддержка APNG, [41] [42] затем Google Chrome. Opera поддерживала APNG в версиях 10–12.1, но поддержка прекратилась в версии 15, когда она перешла на Blink механизм рендеринга ; поддержка была повторно добавлена ​​в Opera 46 (унаследована от Chromium 59). [43] Microsoft Edge поддерживает APNG с версии 79.0, когда он перешел на движок на основе Chromium.

В апреле 2007 года группа PNG решила не использовать APNG. [44] Обсуждалось несколько альтернатив, включая ANG, aNIM/mPNG, «PNG в GIF» и его подмножество «RGBA в GIF». [45] Однако в настоящее время широкую поддержку имеет только APNG.

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

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

Структура очень простого PNG-файла
89 50 4E 47 0D 0A 1A 0A
PNG подпись
IHDR
Заголовок изображения
IDAT
Данные изображения
IEND
Конец изображения
Содержимое минимального файла PNG, представляющего один красный пиксель.
Шестигранник Как персонажи

89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
00 00 00 01 00 00 00 01 08 02 00 00 00 90 77 53
DE 00 00 00 0C 49 44 41 54 08 D7 63 F8 CF C0 00
00 03 01 01 00 18 ДД 8D B0 00 00 00 00 49 45 4E
44 НО 42 60 82

.PNG.... ....IHDR
..............wS
. ....ИДАТ..с....
......... ....ОДИН
БД`.

Часть IHDR
Смещение на фрагмент Шестнадцатеричное значение Десятичное значение Текст Значение
0 0x0D 13 Чанк IHDR имеет 13 байт контента.
4 0x49484452 ИХДР Идентифицирует фрагмент заголовка
8 0x01 1 Изображение шириной 1 пиксель
12 0x01 1 Изображение имеет высоту 1 пиксель.
16 0x08 8 8 бит на пиксель (на канал)
17 0x02 2 Тип цвета 2 (RGB/truecolor)
18 0x00 0 Метод сжатия 0 (только допустимое значение)
19 0x00 0 Метод фильтра 0 (только допустимое значение)
20 0x00 0 Не чересстрочный
21 0x907753DE CRC типа и содержимого чанка (но не длины)
Часть IDAT
Смещение на фрагмент Шестнадцатеричное значение Значение
0 0x0C Блок IDAT имеет 12 байт контента.
4 0x49444154 Идентифицирует фрагмент данных
8 0x08 Метод сжатия DEFLATE с использованием окна размером 256 байт. [48]
9 0xD7 Значение ZLIB FCHECK, словарь не используется, алгоритм максимального сжатия [48]
10 0x63F8CFC00000 Сжатый блок DEFLATE с использованием статического кода Хаффмана, который декодирует до 0x00 0xFF 0x00 0x00. [49]
16 0x03010100 Проверочное значение ZLIB: контрольная сумма Adler32 несжатых данных. [48]
20 0x18DD8DB0 CRC типа и содержимого чанка (но не длины)

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

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

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

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

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

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

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

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

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. [52]

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

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

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

TIFF [ править ]

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

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

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

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

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

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

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

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

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

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

Несмотря на призывы Фонда свободного программного обеспечения [57] и Консорциум Всемирной паутины (W3C), [58] такие инструменты, как gif2png, [59] и такие кампании, как «Сжечь все GIF-файлы», [60] Внедрение PNG на веб-сайтах было довольно медленным из-за поздней и ошибочной поддержки в Internet Explorer, особенно в отношении прозрачности. [61]

К PNG-совместимым браузерам относятся: Apple Safari , Google Chrome , Mozilla Firefox , Opera , Camino , Internet Explorer , Microsoft Edge и многие другие. Полное сравнение см. в разделе Сравнение веб-браузеров (поддержка форматов изображений) .

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

  • 4.0 аварийно завершает работу на больших фрагментах PNG. [63]
  • 4.0 не включает функцию просмотра файлов .png, [64] но есть исправление реестра. [62]
  • В версиях 5.0 и 5.01 прервана поддержка ОБЪЕКТОВ. [65]
  • Версия 5.01 печатает изображения палитры с черным (или темно-серым) фоном под Windows 98, иногда с радикально измененными цветами. [66]
  • 6.0 не отображает изображения PNG размером 4097 или 4098 байт. [67]
  • 6.0 не может открыть файл PNG, содержащий один или несколько фрагментов IDAT нулевой длины. Впервые эта проблема была исправлена ​​в обновлении безопасности 947864 (MS08-024). Дополнительные сведения см. в этой статье базы знаний Microsoft: 947864 MS08-024: Накопительное обновление безопасности для Internet Explorer. [68]
  • 6.0 иногда полностью теряет способность отображать PNG, но есть различные исправления. [69]
  • В версии 6.0 и ниже нарушена поддержка прозрачности альфа-канала (вместо этого будет отображаться цвет фона по умолчанию). [70] [71] [72]
  • 7.0 и ниже не могут сочетать 8-битную альфа-прозрачность И непрозрачность элемента ( CSS – filter: Alpha (opacity=xx)) без заполнения частично прозрачных разделов черным цветом. [73]
  • 8.0 и ниже имеют непостоянную/неработающую поддержку гаммы. [62]
  • 8.0 и ниже не поддерживают цветокоррекцию. [62]

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

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

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

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

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

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

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

Размер файлов PNG зависит от ряда факторов:

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

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

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

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

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

Некоторые программы более эффективны, чем другие, при сохранении файлов 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 конкурируют с файлами, созданными другими графическими редакторами, но их больше нельзя редактировать как что-либо иное, кроме как сглаженные растровые изображения. Fireworks не может сохранять векторно-редактируемые PNG-файлы с оптимизированным размером.

Другие известные примеры плохих компрессоров PNG включают в себя:

  • Microsoft Paint для Windows XP
  • Microsoft, представь это! Фото Премиум 9

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

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

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

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

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

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

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

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

Оптимизатор Удаление фрагмента Уменьшение цвета Фильтрация Повторное использование фильтра [заметка 3] Несколько испытаний фильтров за один проход Дефлатер [примечание 4]
рекламаpng Да Нет [примечание 5] 0 Нет Н/Д [примечание 6] (несколько)
advdef Нет Нет Повторно использует предыдущий набор фильтров. Всегда Н/Д (несколько)
PNGCrush Да Да 0–4 или адаптивный Нет Да zlib
pngout Да Да 0–4 или адаптивный Да [заметка 2] Нет КЗИП
зопфлипнг Да Да 0–4 или адаптивный с 2 ​​разными алгоритмами, или грубым способом Да Да Зопфли

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

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

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

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

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

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

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

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

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

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

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

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

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

Значки для macOS также могут содержать фрагменты изображений PNG, но такого инструмента нет. [ нужна цитата ]

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

Пояснительные примечания [ править ]

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

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

  1. ^ Перейти обратно: а б с «ISO/IEC 15948:2004 – Информационные технологии – Компьютерная графика и обработка изображений – Переносимая сетевая графика (PNG): Функциональная спецификация» . Международная Организация Стандартизации . 3 марта 2004 г. Проверено 19 февраля 2011 г.
  2. ^ Перейти обратно: а б Рулофс, Грег (29 мая 2010 г.). «История PNG» . libpng . Проверено 20 октября 2010 г.
  3. ^ W3C 2003 , 1 Область применения .
  4. ^ «Определение существительного PNG из Оксфордского словаря для продвинутых учащихся» . Оксфордские словари для учащихся . Проверено 21 января 2018 г.
  5. ^ «Описание файла переносимой сетевой графики .PNG» . surferhelp.goldensoftware.com . Проверено 12 августа 2022 г.
  6. ^ Рулофс, Грег. «Веб-обзор: PNG — это НЕ GIF!» . People.apache.org . Проверено 24 ноября 2021 г.
  7. ^ Т. Бутелл; и другие. (март 1997 г.). Спецификация PNG (переносимая сетевая графика), версия 1.0 . IESG . сек. 3. дои : 10.17487/RFC2083 . РФК 2083 .
  8. ^ «Регистрация нового типа носителя image/png» . ИАНА . 27 июля 1996 г.
  9. ^ Лимер, Эрик (30 октября 2019 г.). «Гифка мертва. Да здравствует гифка» . Популярная механика . Проверено 21 ноября 2022 г.
  10. ^ Рулофс 1999 , Глава 7. История формата портативной сетевой графики.
  11. ^ Перейти обратно: а б с д W3C 2003 , 11.2.2 IHDR Заголовок изображения
  12. ^ Рулофс, Грег (29 сентября 2011 г.). «Спецификация и расширения портативной сетевой графики (PNG)» . libpng . Проверено 15 августа 2021 г.
  13. ^ Бутелл, Т. (1 октября 1996 г.). PNG (переносимая сетевая графика) Спецификация 1.0 . W3C . сек. 8.4. дои : 10.17487/RFC2083 . РФК 2083 . PNG сам по себе является форматом одного изображения. (...) В будущем может быть определен формат нескольких изображений на основе PNG. Такой формат будет считаться отдельным форматом файла.
  14. ^ Бутелл, Томас (1 октября 1996 г.). PNG (переносимая сетевая графика) Спецификация 1.0 . дои : 10.17487/RFC2083 . РФК 2083 .
  15. ^ W3C 2003 , подпись 5.2 PNG .
  16. ^ W3C 2003 , 5.3 Расположение блоков .
  17. ^ Перейти обратно: а б Лафройг, Манул (31 октября 2017 г.). PoC или GTFO . Нет крахмального пресса. ISBN  9781593278984 . Каждый фрагмент состоит из четырех частей: длина, тип фрагмента, данные фрагмента и 32-битная CRC. Длина представляет собой 32-битное целое число без знака, указывающее размер только поля данных фрагмента.
  18. ^ Лафройг, Манул (31 октября 2017 г.). PoC или GTFO . Нет крахмального пресса. ISBN  9781593278984 . Тип фрагмента — это 32-битный код FourCC, например IHDR, IDAT или IEND.
  19. ^ W3C 2003 , 11.2.4 IDAT Данные изображения .
  20. ^ W3C 2003 , 11.2.5 IEND Имиджевый трейлер .
  21. ^ W3C 2003 , 11.3.3.3 iCCP Встроенный профиль ICC .
  22. ^ «Спецификация PNG (третье издание), кодовые точки, независимые от кодирования cICP, для идентификации типа видеосигнала» . w3.org . 21 сентября 2023 г.
  23. ^ «Добавление поддержки изображений HDR в формат PNG» . Цвет W3C в группе веб-сообщества. 3 мая 2023 г.
  24. ^ Томас Копп (17 апреля 2008 г.). «Цифровые подписи PNG: спецификация расширения» .
  25. ^ «Расширения спецификации PNG 1.2, версия 1.5.0» . ftp-osl.osuosl.org .
  26. ^ W3C 2003 , 11.3.3.2 gAMA Гамма изображения .
  27. ^ W3C 2003 , 11.3.5.3 pHYs Физические размеры пикселей .
  28. ^ W3C 2003 , 11.3.3.4 sBIT Значимые биты .
  29. ^ «Спецификация PNG (портативная сетевая графика) \ Версия 1.0» . w3.org . Проверено 30 мая 2022 г. 4.2.6. sBIT Значимые биты, всего 13 байт — тип цвета 2 и 3 в сумме составляет 6 байт.
  30. ^ Roelofs 2003 , Значимые биты (sBIT) «Изображения в оттенках серого являются самыми простыми; sBIT затем содержит один байт, указывающий количество значащих битов в исходных данных»
  31. ^ «Спецификация PNG: характеристики чанка» .
  32. ^ «Новости ПНГ за 2006 год» . Libpng.org.
  33. ^ Перейти обратно: а б «Спецификация PNG: Обоснование» . w3.org .
  34. ^ W3C 2003 , 9 Фильтрация .
  35. ^ «Алгоритмы фильтров» . Спецификация PNG .
  36. ^ Пэт, Алан В. (1991). Арво, Джеймс (ред.). «Сжатие файлов изображений стало проще». Графические драгоценности 2 . Academic Press, Сан-Диего: 93–100. дои : 10.1016/B978-0-08-050754-5.50029-3 . ISBN  0-12-064480-0 . Значок закрытого доступа
  37. ^ Крокер, Ли Дэниел (июль 1995 г.). «PNG: формат портативной сетевой графики» . Журнал доктора Добба . 20 (232): 36–44.
  38. ^ «Знакомство с PNG» . nuwen.net . Проверено 20 октября 2010 г.
  39. ^ «Могу ли я использовать... Таблицы поддержки HTML5, CSS3 и т. д.» . caniuse.com . Проверено 6 февраля 2021 г.
  40. ^ «iOS 8 и iPhone 6 для веб-разработчиков и дизайнеров: следующая эволюция Safari и собственных веб-приложений» . mobilexweb.com. 17 сентября 2014 года . Проверено 24 сентября 2014 г.
  41. ^ Скрогго (14 марта 2017 г.). "хром/хром/src/7d2b8c45afc9c0230410011293cc2e1dbb8943a7" . chromium.googlesource.com . Проверено 31 марта 2017 г.
  42. ^ хром-крон; и другие. (27 марта 2017 г.). "хром/хром/src/59.0.3047.0..59.0.3053.0" . chromium.googlesource.com . Проверено 31 марта 2017 г.
  43. ^ «Dev.Opera — Что нового в Chromium 59 и Opera 46» . dev.opera.com . Проверено 11 сентября 2022 г.
  44. ^ «Голосование не удалось: APNG 20070405a» . 20 апреля 2007 г. Архивировано из оригинала 3 февраля 2008 г.
  45. ^ «Сравнение предложений по анимации PNG Group + тестовое программное обеспечение» . xs4all.nl . Архивировано из оригинала 24 января 2009 года.
  46. ^ «PNG Третье издание, пояснения» . W3C на Гитхабе . 24 мая 2023 г.
  47. ^ «Спецификация PNG (третье издание), APNG: покадровая анимация» . w3.org . 21 сентября 2023 г.
  48. ^ Перейти обратно: а б с Дойч, Л. Питер; Гайи, Жан-Лу (май 1996 г.). "rfc1950" . Ietf Datatracker . Проверено 18 августа 2021 г.
  49. ^ Дойч, Л. Питер (май 1996 г.). "rfc1951" . Ietf Datatracker . Проверено 18 августа 2021 г.
  50. ^ «Базовое введение в функции PNG» . Libpng.org . Проверено 20 октября 2010 г.
  51. ^ «GIF, PNG, JPG. Какой использовать?» . Сайтpoint.com. 3 августа 2009 года . Проверено 20 октября 2010 г.
  52. ^ «Расширения спецификации PNG 1.2, версия 1.5.0» . Проверено 5 мая 2020 г.
  53. ^ «T.87: Сжатие без потерь и почти без потерь неподвижных изображений с непрерывным тоном – базовый уровень» . Международный союз электросвязи . Проверено 20 марта 2011 г.
  54. ^ Перейти обратно: а б с д Это ж г Рулофс 2003 , Глава 9. Сжатие и фильтрация.
  55. ^ «либпнг» . Проверено 13 июля 2013 г.
  56. ^ «Использование изображений PNG для отображения данных» . Центр водных наук Орегона. 16 февраля 2006 г.
  57. ^ «Почему на веб-страницах GNU нет файлов GIF» . Операционная система GNU . 16 декабря 2008 г.
  58. ^ «Информационный бюллетень PNG» . Консорциум Всемирной паутины . 7 октября 1996 г.
  59. ^ «Страница ресурса для gif2png 2.5.11» . catb.org .
  60. ^ «Сжечь все GIF-файлы» . сайт burnallgifs.org .
  61. ^ «Прозрачность PNG в Internet Explorer» . Журнал ПК . 5 октября 2004 г.
  62. ^ Перейти обратно: а б с д «Браузеры с поддержкой PNG» . 14 марта 2009 г.
  63. ^ «Проводник Windows аварийно завершает работу, когда я нажимаю на PNG-файл Fireworks для его просмотра» . Системы Adobe . 5 июня 2007 г.
  64. ^ «Невозможно просмотреть изображения в формате PNG в Internet Explorer 4.0» . База знаний Майкрософт .
  65. ^ «Файлы PNG, находящиеся внутри тега объекта, печатаются как негативное изображение» . База знаний Майкрософт .
  66. ^ «Изображения PNG печатаются неправильно в Internet Explorer 5.01» . База знаний Майкрософт .
  67. ^ «Невозможно просмотреть некоторые изображения PNG в Internet Explorer 6» . База знаний Майкрософт .
  68. ^ «Вы не можете использовать Internet Explorer 6 для открытия файла PNG, который содержит один или несколько фрагментов IDAT нулевой длины» . База знаний Майкрософт .
  69. ^ «Часто задаваемые вопросы по PNG» .
  70. ^ «Доктор философии: Портативная сетевая графика теряет прозрачность в веб-браузере» . База знаний Майкрософт .
  71. ^ «Файлы PNG не показывают прозрачность в Internet Explorer» . База знаний Майкрософт .
  72. ^ Ловитт, Майкл (21 декабря 2002 г.). «Кроссбраузерная переменная непрозрачность с PNG: реальное решение» . Список врозь . Архивировано из оригинала 18 августа 2011 года . Проверено 21 июля 2009 г.
  73. ^ «IE7 альфа прозрачный PNG + непрозрачность» . Канал 9 . Архивировано из оригинала 27 августа 2011 года . Проверено 23 января 2009 г.
  74. ^ Фулбрайт, Майкл (1999). «Дорожная карта библиотеки GNOME 1.0» . Архивировано из оригинала 30 января 2010 года . Проверено 19 декабря 2007 г.
  75. ^ «Windows Vista – Значки» . ООдин . 2007. Архивировано из оригинала 11 ноября 2007 года . Проверено 12 ноября 2007 г.
  76. ^ «PNG может быть форматом с потерями» . Pngmini.com . Проверено 1 февраля 2014 г.

Further reading[edit]

External links[edit]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: D080B8136BD08F2D34CF1EF2F6CF6A74__1714991940
URL1:https://en.wikipedia.org/wiki/Portable_Network_Graphics
Заголовок, (Title) документа по адресу, URL1:
PNG - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)