Файл PNG – чем открыть, описание формата
Чем открыть, описание – 1 формат файла
Рисунок PNG
Portable Network Graphic
Тип файла: Растровые изображения
Тип данных: Двоичный файл
Mime-type: image/png
Разработчик: PNG Development Group
Заголовок и ключевые строки
HEX: 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
ASCII: PNG…….IHDR
Подробное описание
Файл PNG — растровое изображение, сохраненное в формате Portable Network Graphic. В каждом PNG-рисунке содержится палитра — набор используемых цветов. Для уменьшения размера файла применяется сжатие без потерь качества по алгоритму Deflate. Используется преимущественно в Интернете в качестве изображений для веб-страниц.
Формат был разработан для замены GIF, который, помимо своих недостатков, до 2004 имел ограничения для использования в свободном программном обеспечении. Новый формат PNG решил эти проблемы. В частности, в нем реализована поддержка 8-битного альфа-канала и поддержка глубины цвета до 48 бит. В то время как в GIF-формате возможна только полная прозрачность и цветовая палитра ограничена всего 256 цветами (8 бит).
Однако, в отличие от предшественника, этот формат не поддерживает анимацию. С этой целью был создан другой формат MNG. В файлах PNG также невозможно использование палитры CMYK, потому как этот формат не предназначен для профессиональной работы с графикой.
Файлы PNG можно открыть в любом браузере и практически в любой программе для редактирования изображений. В Windows файл с расширением PNG можно открыть двойным кликом мыши.
Как, чем открыть файл .png?
WindowsОнлайнAndroidiOSMac OSLinux
|
Инструкция — как выбрать программу из списка, скачать и использовать ее для открытия файла
Для более точного определения формата и программ для открытия файла используйте функцию определения формата файла по расширению и по данным (заголовку) файла.
Формат файла PNG — файл растрового изображения
Что такое PNG-файл?
Файл PNG (Portable Network Graphics) — это формат файла растрового изображения, в котором используется сжатие без потерь. Этот формат файла был создан в качестве замены формата обмена графикой (GIF) и не имеет ограничений авторского права. Однако формат файла PNG не поддерживает анимацию. Формат файлов PNG поддерживает сжатие изображений без потерь, что делает его популярным среди пользователей. С течением времени PNG превратился в один из широко используемых форматов файлов изображений.
Краткая история формата файлов PNG
Основной причиной создания формата файла PNG был запатентованный алгоритм сжатия Lempel-Ziv-Welch, используемый в формате файла GIF. Это, наряду с другими ограничениями GIF, привело к необходимости замены формата файла GIF. Первое предложение и название для формата файлов PNG поступило в январе 1995 года. Основные события, связанные с форматами файлов PNG, перечислены ниже:
- Октябрь 1996: Спецификации PNG версии 1. 0 были выпущены и позже появились как [RFC] (https://en.wikipedia.org/wiki/Request_for_Comments) 2083. В октябре 1996 года они стали рекомендацией W3C.
- Декабрь 1998: Выпущена версия 1.1 с небольшими изменениями и добавлением трех новых частей.
- Август 1999: Выпущена версия 1.2, добавляющая один дополнительный фрагмент.
- Ноябрь 2003 г.: PNG стал международным стандартом (ISO/IEC 15948:2003). Эта версия PNG лишь незначительно отличается от версии 1.2 и не добавляет новых фрагментов.
- Март 2004 г.: ИСО/МЭК 15948:2004.
Функциональное сравнение GIF и PNG
Формат файла PNG был разработан, чтобы быть простым и портативным, юридически свободным, взаимозаменяемым, гибким и надежным. В следующей таблице перечислены функции GIF, унаследованные форматом файла PNG, в дополнение к новым функциям.
Функция | GIF | PNG |
---|---|---|
Индексные изображения до 256 цветов | Да | Да |
Поддержка потоковой передачи | Да | Да |
Прозрачность | Да | Да |
Дополнительная информация | Да | Да |
Независимость от оборудования и платформы | Да | Да |
Действует | Да | Да |
Truecolor изображения до 48 бит на пиксель | Нет | Да |
Изображения в оттенках серого до 16 бит на пиксель | Нет | Да |
Полный альфа-канал (общие маски прозрачности) | Нет | Да |
Информация о гамме изображения | Нет | Да |
Надежность | Нет | Да |
Быстрая начальная презентация | Нет | Да |
Структура файла PNG
Почти все операционные системы поддерживают открытие файлов PNG. Например, средство просмотра Microsoft Windows имеет возможность открывать файлы PNG, поскольку ОС по умолчанию поддерживает эту поддержку, доступную как часть установки. Файл PNG состоит из «подписи» PNG, за которой следует серия //фрагментов//.
Заголовок файла PNG
Первые восемь байтов файла PNG всегда содержат следующие (десятичные) значения:
{{{137 80 78 71 13 10 26 10 }}}
Эта сигнатура указывает, что оставшаяся часть файла содержит одно изображение PNG, состоящее из серии фрагментов, начиная с фрагмента IHDR и заканчивая фрагментом IEND.
Кусочки
Каждый чанк состоит из четырех частей:
Длина: 4-байтовое целое число без знака, указывающее количество байтов в поле данных фрагмента. Длина учитывает только поле данных, а не само поле, код типа блока или CRC. Нуль является допустимой длиной. Хотя кодировщики и декодеры должны рассматривать длину как беззнаковую, ее значение не должно превышать 231 байт.
Тип фрагмента: 4-байтовый код типа фрагмента. Для удобства описания и изучения файлов PNG коды типов могут состоять только из прописных и строчных букв ASCII (AZ и az или 65–90 и 97–122 в десятичном формате). Однако кодировщики и декодеры должны обрабатывать коды как фиксированные двоичные значения, а не строки символов. Например, было бы неправильно представлять код типа IDAT эквивалентами этих букв в формате EBCDIC. Дополнительные соглашения об именах для типов фрагментов обсуждаются в следующем разделе.
Данные фрагмента: Байты данных, соответствующие типу фрагмента, если таковые имеются. Это поле может иметь нулевую длину.
CRC: 4-байтовый CRC (проверка циклическим избыточным кодом), рассчитанный для предыдущих байтов в блоке, включая код типа блока и поля данных блока, но не включая поле длины. CRC присутствует всегда, даже для фрагментов, не содержащих данных.
Длина данных чанка может быть любым числом байтов вплоть до максимального; поэтому разработчики не могут предполагать, что фрагменты выровнены по любым границам, превышающим байты.
Фрагменты могут появляться в любом порядке с учетом ограничений, наложенных на каждый тип фрагментов. (Одним заметным ограничением является то, что IHDR должен стоять первым, а IEND должен стоять последним; таким образом, фрагмент IEND служит маркером конца файла.) Могут появляться несколько фрагментов одного и того же типа, но только если это специально разрешено для этого типа.
Типы чанков
Типы фрагментов подразделяются на Критические и Вспомогательные на основе 4-байтового значения ASCII с учетом регистра, присвоенного Типу фрагмента. Все реализации должны понимать и успешно отображать стандартные критические фрагменты. Допустимое изображение PNG должно содержать фрагмент IHDR, один или несколько фрагментов IDAT и фрагмент IEND.
Сжатие
Метод сжатия PNG 0 (единственный метод сжатия, определенный в настоящее время для PNG) задает сжатие deflate/inflate со скользящим окном размером не более 32768 байт. Сжатие Deflate — это производная LZ77, используемая в zip, gzip, pkzip и связанных с ними программах. Были проведены обширные исследования, подтверждающие его безпатентный статус. Сжатые данные в потоке данных zlib хранятся в виде серии блоков, каждый из которых может представлять необработанные (несжатые) данные, данные, сжатые с помощью LZ77, закодированные с помощью фиксированных кодов Хаффмана, или данные, сжатые с помощью LZ77, закодированные с помощью пользовательских кодов Хаффмана. Бит маркера в последнем блоке идентифицирует его как последний блок, позволяя декодеру распознать конец сжатого потока данных.
Фильтрация перед сжатием
Фильтры предварительного сжатия применяются для подготовки данных изображения к оптимальному сжатию. Метод фильтра PNG определяет пять основных типов фильтров:
Тип фильтра | Имя | Прогнозируемое значение |
---|---|---|
0 | Нет | Сканерлайн передается без изменений |
1 | Sub | Передает разницу между каждым байтом и значением соответствующего байта предыдущего пикселя. |
2 | Up | Фильтр Up() аналогичен фильтру Sub(), за исключением того, что в качестве предиктора используется пиксель непосредственно над текущим пикселем, а не слева от него. |
3 | Среднее | Фильтр Average() использует среднее значение двух соседних пикселей (слева и сверху) для прогнозирования значения пикселя. |
4 | Paeth | Фильтр Paeth() вычисляет простую линейную функцию трех соседних пикселей (слева, вверху, вверху слева), затем выбирает в качестве предиктора соседний пиксель, ближайший к вычисляемому значению. |
Алгоритмы фильтрации применяются к «байтам», а не к пикселям, независимо от битовой глубины или типа цвета изображения. Алгоритмы фильтрации работают с последовательностью байтов, сформированной строкой сканирования. Если изображение включает альфа-канал, альфа-данные фильтруются так же, как данные изображения.
Когда изображение чересстрочное, каждый проход шаблона чересстрочной развертки обрабатывается как независимое изображение для целей фильтрации. Фильтры работают с последовательностями байтов, образованными пикселями, фактически переданными во время прохода, а «предыдущая строка сканирования» — это та, которая ранее была передана в том же проходе, а не соседняя в полном изображении. Обратите внимание, что частичное изображение, передаваемое за один проход, всегда прямоугольное, но имеет меньшую ширину и/или высоту, чем полное изображение. Фильтрация не применяется, когда это фрагмент изображения пуст.
Использованная литература
- [PNG — домашняя страница] (http://www.libpng.org/pub/png/)
404: Страница не найдена
Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы извиняемся за любые неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск- Пожалуйста, свяжитесь с нами, чтобы сообщить, что эта страница отсутствует, или используйте поле выше, чтобы продолжить поиск
- Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, WhatIs. com.
- Посетите нашу домашнюю страницу и просмотрите наши технические темы
Просмотр по категории
Сеть
- коаксиальный кабель
Коаксиальный кабель — это тип медного кабеля, специально изготовленного с металлическим экраном и другими компонентами, предназначенными для блокирования сигнала …
- мегагерц (МГц)
Мегагерц (МГц) — это множитель, равный одному миллиону герц (106 Гц). Герц — стандартная единица измерения частоты в …
- Стандарты беспроводной связи IEEE 802
IEEE 802 — это набор сетевых стандартов, которые охватывают спецификации физического уровня и уровня канала передачи данных для таких технологий, как…
Безопасность
- SOAR (организация безопасности, автоматизация и реагирование)
Управление безопасностью, автоматизация и реагирование, или SOAR, представляет собой набор совместимых программ, который позволяет организации.
.. - цифровая подпись
Цифровая подпись — это математический метод, используемый для проверки подлинности и целостности сообщения, программного обеспечения или цифрового…
- судо (су ‘делать’)
Sudo — это утилита командной строки для Unix и операционных систем на базе Unix, таких как Linux и macOS.
ИТ-директор
- хорошие навыки
Твердые навыки — это определенные способности, способности и наборы навыков, которыми человек может обладать и демонстрировать взвешенно.
- управление корпоративными проектами (EPM)
Управление корпоративными проектами (EPM) представляет собой профессиональные практики, процессы и инструменты, используемые для управления несколькими …
- Управление портфелем проектов: руководство для начинающих
Управление портфелем проектов — это формальный подход, используемый организациями для выявления, определения приоритетов, координации и мониторинга проектов . ..
HRSoftware
- пассивный кандидат
Пассивный кандидат (пассивный кандидат на работу) — это любой работник, который не ищет работу активно.
- проверка сотрудников
Проверка сотрудников — это процесс проверки, проводимый работодателями для проверки биографических данных и проверки информации о новом…
- Эффект хоторна
Эффект Хоторна — это изменение поведения участников исследования в ответ на их знание о том, что они …
Обслуживание клиентов
- квалифицированный маркетолог лид (MQL)
Квалифицированный маркетолог (MQL) — это посетитель веб-сайта, уровень вовлеченности которого указывает на то, что он может стать клиентом.
- автоматизация маркетинга
Автоматизация маркетинга — это тип программного обеспечения, которое позволяет компаниям эффективно ориентироваться на клиентов с помощью автоматизированного маркетинга . ..
- успех клиента
Успех клиента — это стратегия, направленная на то, чтобы продукция компании отвечала потребностям клиента.
Инспектор фрагментов файла PNG
Portable Network Graphics — это повсеместно распространенный формат файлов для передачи неподвижных изображений. Он используется в Интернете и в различных системах документов и имеет достойный уровень сжатия без потерь.
Файл PNG состоит из 8-байтового заголовка подписи, за которым следует любое количество фрагментов, содержащих управляющие данные/метаданные/данные изображения. Каждый чанк содержит три стандартных поля – 4 байта длины, 4 байта кода типа, 4 байта 9.0118 CRC — и различные внутренние поля, зависящие от типа чанка.
Инструмент JavaScript на этой странице читает заданный PNG-файл и глубоко анализирует его, показывая список фрагментов и полей, а также любые ошибки, нарушающие спецификацию формата. Это может быть полезно при поиске скрытых метаданных (то есть вещей, которых нет на визуальном изображении), а также при разработке программного обеспечения, которое читает или записывает файлы PNG в соответствии с требованиями.
Программа
Использовать образец файла: | |
Чтение локального файла: |
Сводка фрагментов:
Начальное смещение | Необработанные байты | Кусок снаружи | Кусок внутри | Ошибки |
---|
Примечания
Формат файла PNG начинается с волшебной подписи, за которой следует любое количество фрагментов с унифицированным синтаксисом. Этот дизайн похож на другие популярные форматы мультимедийных файлов, такие как: BMP, TIFF, WAV, AVI, общий RIFF. Он отличается от обычных текстовых форматов файлов (на удивление существуют такие примеры, как Netpbm), Иерархические элементы XML , ZIP-контейнер подфайлов, пользовательский двоичный формат PDF и т. д.
Файл PNG может содержать несколько фрагментов IDAT для хранения сжатых данных изображения.
Это семантически эквивалентно объединению байтов данных всех фрагментов IDAT; это не эквивалентно наличию нескольких (под)изображений. Наличие нескольких IDAT требует немного больше места в заголовках и нижних колонтитулах фрагментов и не дает никакой пользы декодеру. Основная причина наличия нескольких IDAT заключается в том, что программное обеспечение кодировщика хочет поддерживать низкий уровень использования памяти и не нуждается в буферизации всего IDAT, что требуется только для того, чтобы узнать окончательную длину фрагмента перед началом записи фрагмента. Гораздо реже причиной многих IDAT является то, что данные полезной нагрузки после сжатия превышают 2 ГиБ ; в данном случае это обязательно.Хотя этот инструмент довольно глубоко проникает в различные значения и поля в файлах PNG, он не может быть идеально детализирован. Например, вывод каждого символа DEFLATE, каждого значения пикселя или даже каждого значения палитры был бы очень подробным и, вероятно, бесполезным.
Кроме того, существуют некоторые сложные внешние форматы данных (не определенные в стандарте PNG), которые я предпочитаю не понимать и не декодировать, например профили ICC или метаданные Exif. Когда этого инструмента недостаточно для ваших нужд, единственным оставшимся решением является проверка необработанных байтов файла и анализ фрагментов и полей самостоятельно.Хотя Animated PNG не является ратифицированным стандартом, поскольку он конкурирует с MNG, этот инструмент поддерживает проверку трех определенных типов фрагментов. Проверяются все аспекты фрагментов APNG , за исключением распаковки пикселей из fdAT.
Если вы решите прочитать файл из вашей локальной системы, это веб-приложение будет выполнять все вычисления в вашем веб-браузере и не будет загружать изображение на сервер. Исходный код TypeScript и скомпилированный код JavaScript доступны для просмотра.
По сравнению с pngcheck
Сделано не мной, pngcheck — аналогичная программа командной строки, которая отображает информацию о фрагментах файла PNG и проверяет наличие ошибок формата. Он реализован на C и существует с года, когда родился PNG. Насколько я знаю, это единственная общедоступная и всеобъемлющая программа проверки PNG, поэтому, по-видимому, многие другие разработчики на протяжении десятилетий полагались на нее для проверки своей работы. Моя программа вышла в , спустя много времени после них.
С точки зрения детализации, pngcheck составляет около 5000 строк кода C (включая поддержку фрагментов MNG и JNG , но не включает декомпрессор), тогда как моя работа составляет около 2000 строк кода TypeScript (включая логику HTML GUI ). и декомпрессор DEFLATE).
Моя программа и pngcheck могут правильно обнаруживать почти все распространенные и серьезные ошибки файлов. pngcheck не может обнаружить некоторые ошибки, такие как переполнение bKGD, переполнение tRNS, неправильный день месяца tIME, повторяющееся имя sPLT, неправильный iTXt UTF-8, неверный сжатый zTXt данные. Моя программа не может обнаружить какую-либо ошибку в IDAT, например. ошибка декомпрессии, неправильная длина, неправильный фильтр, индекс палитры вне допустимого диапазона.
Авторы pngcheck признают, что за прошедшие годы исправили ряд ошибок, связанных с переполнением буфера, и признают, что все еще могут оставаться другие уязвимости в системе безопасности. Я вызвался прочитать весь исходный код pngcheck v3.0.3 (выпущен ) и был рад не найти критических логических ошибок или уязвимостей в системе безопасности. Напротив, я знал о переполнении буфера и числовых переполнениях при написании своего кода и считаю, что избежал всех возможных ошибок; кроме того, мой код работает на виртуальной машине JavaScript, которая по своей природе безопасна для памяти.
Подробнее
- W3C: Спецификация переносимой сетевой графики (PNG) (Второе издание) (год )
- W3C: Спецификация Portable Network Graphics (PNG) (Второе издание) — Спецификации блоков
- PNG (Portable Network Graphics) Домашний сайт: Спецификация PNG, версия 1.