Изображение PNG (.png)

Рекомендация Стандарт

Portable Network Graphics (PNG): растровый формат файлов без патентных ограничений, поддерживающий сжатие данных без потерь, индексированные цвета и альфа-канал с переменной прозрачностью.

Конвертировать из PNG в JPG

Бесплатный конвертер из PNG в JPG прямо в браузере. Конвертируйте файлы мгновенно на Вашем устройстве.

Сжатие PNG онлайн

Конфиденциально - файлы никогда не покидают ваше устройство

Анализ и метаданные

Операционные системы и анализаторы файлов идентифицируют файлы PNG по начальной двоичной последовательности байтов:

Выберите или перетащите файлы сюда

Конфиденциально - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполнялась локально в песочнице Вашего браузера.

Сигнатура заголовка на уровне байтов (Magic Bytes)

Операционные системы и анализаторы файлов идентифицируют файлы PNG по начальной двоичной последовательности байтов:

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

89 50 4E 47 0D 0A 1A 0A

ПРЕДСТАВЛЕНИЕ ASCII: .PNG....

Стандартизация: Рекомендация W3C (1996) / ISO/IEC 15948:2004

Технические спецификации

Архитектура контейнераБинарный контейнер на основе блоков (чанков) с 4-байтовой проверкой CRC32 для каждого блока
СжатиеDeflate (LZ77 + кодирование Хаффмана) с 5 предиктивными фильтрами строк (None, Sub, Up, Average, Paeth)
Порядок байтов (Endianness)Сетевой порядок байтов (Big-Endian) для длин блоков, размеров и контрольных сумм CRC
Цветовые пространстваsRGB, Display P3, Индексированная палитра (1: 8 бит), Оттенки серого, Полноцветное изображение (24/48 бит)
Каналы и структураRGB + альфа-канал (до 16 бит на канал / 64-битный RGBA)
Максимальные размеры2 147 483 647 x 2 147 483 647 пикселей (4-байтовые беззнаковые целые числа)
ПрозрачностьПолный канал альфа-прозрачности с глубиной 8 или 16 бит
Потоковая передача и прогрессивная загрузкаАлгоритм чересстрочной развертки Adam7 с 7 проходами обеспечивает постепенную отрисовку двумерного изображения по строкам.

Техническая матрица сравнения: PNG с конкурентами

Технический атрибутPNG (Текущий)WebPAVIFJPEG
Тип сжатияСтрого без потерь (Deflate + 2D предиктивные фильтры)С потерями (VP8) и без потерь (VP8L)С потерями (AV1 intra) и без потерьТолько с потерями (дискретное косинусное преобразование)
Альфа-прозрачностьПолный альфа-канал с глубиной 8 или 16 битПоддерживается 8-битный альфа-каналПоддерживаются 8-, 10- и 12-битные альфа-каналыПоддержка канала прозрачности отсутствует
Размер файла (фотографий)Большой (обычно в 3: 6 раз больше, чем у форматов с потерями)Небольшой (на 25%-35% меньше, чем JPEG)Очень небольшой (на 40%-55% меньше, чем JPEG)Средний (базовый уровень)
Размер файла (графика/интерфейсы)Очень компактный формат для снимков экрана, штриховой графики и текстаОтличный режим без потерьХороший, но кодируется медленнееПлохой (создает артефакты звона вдоль резких границ)
Совместимость с браузерами100% универсальная поддержка во всех браузерах с 1998 годаПоддержка более чем в 97% современных браузеровПоддержка в 93%+ современных браузеров100% универсальная

Распространенные сценарии повреждения и руководство по восстановлению в HEX

Просмотрщик изображений выдает ошибку 'Fatal error: Not a valid PNG file' или не может открыть файл.

Первопричина: Первые 8 байт были изменены режимом передачи ASCII (преобразование 0x0D 0x0A в 0x0A или 0x0D 0x0D 0x0A).

Восстановление: Откройте файл в шестнадцатеричном редакторе и проверьте, что первые 8 байт совпадают с «89 50 4E 47 0D 0A 1A 0A». Восстановление именно этих 8 байт заголовка часто позволяет восстановить изображение.

Утилита pngcheck сообщает 'CRC error in chunk IDAT' или изображение загружается частично с поврежденными нижними строками развертки.

Первопричина: Повреждение битов в сжатом потоке данных zlib или недействительная контрольная сумма CRC32 в блоке IDAT.

Восстановление: Используйте pngcheck -f или утилиты восстановления потока Deflate для пересчета действительных значений CRC32 или декомпрессии уцелевших строк развертки до поврежденного блока.

Изображение отлично отображается в настольных программах просмотра, но не открывается в приложениях iOS.

Первопричина: iOS ожидает проприетарный формат с переставленными байтами CgBI от Apple или нестандартные блоки цветового пространства.

Восстановление: Нормализуйте изображение с помощью команды 'pngcrush -revert-iphone-optimizations', чтобы восстановить стандартный порядок W3C RGBA.

Анализ безопасности и векторы атак на парсер

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

Известные векторы атак

  • Слишком большие блоки метаданных tEXt и zTXt, вызывающие отказ в обслуживании (DoS) из-за исчерпания памяти (OOM) в декодерах без песочницы.
  • Уязвимости переполнения буфера кучи в устаревших версиях libpng (например, CVE-2015-8126 в png_set_PLTE).
  • Атаки с распаковкой изображений, заявляющих огромное число пикселей при небольшом размере файла (например, 100 000 × 100 000 пикселей).
  • Стеганографическая эксфильтрация данных с сокрытием зашифрованных полезных нагрузок во вспомогательных частных чанках (например, eXIf или пользовательских типах чанков).

Лучшие практики защиты: Всегда проверяйте размеры изображения до выделения буферов пикселей в памяти. При загрузке удаляйте необязательные вспомогательные блоки (eXIf, tEXt) с помощью инструмента безопасной очистки данных.

История происхождения и ключевые этапы

2004Международная стандартизация как ISO/IEC 15948.
1996PNG 1.0 опубликован в качестве рекомендации W3C.
1995Создан в группе новостей Usenet comp.graphics как открытая замена GIF после того, как компания Unisys начала взимать плату за использование запатентованного алгоритма LZW.

Ключевые преимущества и плюсы

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

Технические ограничения и минусы

  • Значительно больший размер файлов по сравнению с современными форматами с потерями, такими как WebP или AVIF, для фотографического контента.
  • Отсутствие нативной многокадровой анимации в стандартном PNG (требуется расширение APNG).
  • Высокая глубина цвета (16 бит на канал) требует больших несжатых буферов декодированных данных в памяти.

Интересные технические факты

  • 8-байтовая сигнатура PNG была специально разработана для обнаружения повреждения окончаний строк CR/LF при передаче файлов по FTP.
  • Неофициальная рекурсивная аббревиатура для PNG расшифровывалась как 'PNG's Not GIF'.
  • Apple использует проприетарный блок CgBI в PNG-файлах приложений iOS; он меняет порядок каналов RGBA на BGRA для непосредственной отрисовки на GPU.

Часто задаваемые технические вопросы

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

Разные программные пакеты используют разные уровни сжатия Deflate и эвристики выбора предиктивных фильтров строк. Такие программы, как Photoshop, часто добавляют несжатые цветовые профили, блоки метаданных XMP и неоптимальный размер блоков IDAT. Специализированные инструменты, например File2File.app Compressor, заново проверяют все 5 фильтров строк, чтобы уменьшить размер файла.

В чем разница между PNG-8 и PNG-24?

PNG-8 использует индексированную палитру до 256 цветов (как GIF), что позволяет получать очень маленькие файлы для простых значков. PNG-24 поддерживает 16,7 миллиона цветов (Truecolor, 8 бит на канал), а в PNG-32 добавляется 8-битный альфа-канал прозрачности.

Почему в PNG предусмотрено 5 предиктивных фильтров строк развертки?

Алгоритм Deflate сжимает повторяющиеся шаблоны байтов. Поскольку значения пикселей на фотографиях или градиентах изменяются постепенно, PNG фильтрует каждую строку развертки (None, Sub, Up, Average, Paeth), вычисляя разницу между соседними пикселями. Это превращает данные градиента в последовательности байтов, близких к нулю, которые сжимаются с помощью Deflate значительно эффективнее.

Поддерживает ли PNG цветовое пространство CMYK для коммерческой печати?

Нет. Официальная спецификация W3C PNG намеренно ограничивает цветовые типы оттенками серого, индексированными цветами и RGB. Профессиональные рабочие процессы печати, требующие CMYK, должны использовать контейнеры TIFF или PDF.

Связанные конвертации для PNG

PNG в JPG

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

JPG в PNG

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

PNG в WEBP

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

WEBP в PNG

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

HEIC в PNG

Конвертация HEIC в PNG преобразует фотографии со сжатием HEVC с потерями в широко поддерживаемые графические файлы без потерь.

SVG в PNG

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

PNG в SVG

Инкапсуляция растровых изображений PNG в векторный контейнер SVG XML для адаптивного масштабирования в Интернете и интеграции в векторные макеты.

PSD в PNG

Конвертируйте графику Adobe Photoshop PSD в изображения PNG без потерь с поддержкой полной прозрачности альфа-канала прямо в Вашем браузере без передачи данных на сервер.