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

Препоръка Стандарт

Portable Network Graphics (PNG) е свободен растерен графичен файлов формат, който поддържа компресия без загуба на данни, индексирани цветове и променлива прозрачност чрез алфа канал.

Конвертиране от PNG към JPG

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

Компресирайте PNG онлайн

Поверително - файловете никога не напускат устройството ви

Проверка и метаданни

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

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

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

HEX ПОДПИС (ОФСЕТ 0):

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

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

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

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

Контейнерна архитектураДвоичен контейнер, базиран на блокове (chunks) с 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 вътрешнокадрово) и без загубаСтрого със загуба (Дискретна косинусова трансформация)
Алфа прозрачностПълен 8-битов / 16-битов променлив алфа каналПоддържа се 8-битов алфа каналПоддържа се 8-битов / 10-битов / 12-битов алфа каналНяма поддръжка на канал за прозрачност
Файлов размер (снимки)Често е по-голям от файловете в компресирани формати със загуби при фотографски изображения; относителният размер зависи от изображението и кодера.Може да е по-малък от JPEG; резултатът зависи от изображението и кодера.Може да е по-малък от JPEG; резултатът зависи от изображението и кодера.Среден базов размер
Файлов размер (графика/UI)Изключително компактен за екранни снимки, линейни графики и текстОтличен режим без загубаДобър, но по-бавен за кодиранеЛош (създава ореоли около остри ръбове)
Съвместимост с браузъриПоддържа се от основните браузъри; наличността зависи от браузъра и версията.Широка поддръжка в много от актуалните браузъри; обхватът зависи от версията и платформата.Поддържа се от много от актуалните браузъри; обхватът зависи от версията и платформата.Широка поддръжка; наличността зависи от продукта и версията.

Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни

Програмата за преглед показва „Фатална грешка: Невалиден PNG файл“ или не успява да го отвори.

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

Възстановяване: Отворете файла в шестнадесетичен редактор и проверете дали първите 8 байта съвпадат с „89 50 4E 47 0D 0A 1A 0A“. Възстановяването на тези точни 8 байта на заглавката често възстановява изображението.

Инструментът pngcheck докладва „Грешка в CRC сумата в блок IDAT“ или изображението се зарежда частично с повредени долни сканиращи редове.

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

Възстановяване: Използвайте pngcheck -f или програми за възстановяване на Deflate потоци, за да преизчислите валидни CRC32 стойности, или декомпресирайте оцелелите сканиращи редове до повредения блок.

Изображението се визуализира перфектно в настолни програми за преглед, но дава грешка в приложения за iOS.

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

Възстановяване: Нормализирайте изображението с помощта на командата „pngcrush -revert-iphone-optimizations", за да възстановите стандартната W3C RGBA подредба.

Анализ на сигурността и вектори на атака към парсера

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

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

  • Прекалено големи tEXt и zTXt метаданни блокове, предизвикващи отказ от услуга поради изчерпване на паметта (OOM) в декодери без изолирана среда.
  • Уязвимости тип препълване на буфера в динамичната памет (heap buffer overflow) в остарели версии на libpng (напр. CVE-2015-8126 в png_set_PLTE).
  • Атаки с декомпресионно заливане с пиксели, при които изображение с малък файлов размер декларира огромни размери (напр. 100 000 x 100 000 пиксела).
  • Стеганографско скриване на криптирани полезни товари в помощни частни блокове (напр. eXIf или потребителски типове блокове).

Най-добри практики за защита: Винаги валидирайте размерите на изображението, преди да заделите буфери за пикселите в паметта. Изчиствайте несъществените помощни блокове (eXIf, tEXt) при качване от потребители, като използвате безопасен за паметта санитайзър.

Исторически произход и етапи

2004Стандартизиран в международен мащаб като ISO/IEC 15948.
1996PNG 1.0 е публикуван като препоръка на W3C.
1995Създаден в Usenet групата comp.graphics като отворен заместител на GIF след налагането на такси за патента върху LZW от Unisys.

Основни предимства

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

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

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

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

  • 8-байтовата сигнатура е проектирана така, че да открива повреда от преобразуване на окончанията на редовете CR/LF при прехвърляне по FTP.
  • Неофициалното обратно разчитане на съкращението PNG е „PNG не е GIF“ (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 милиона цвята (пълноцветен режим с 8 бита на канал), като PNG-32 добавя и 8-битов алфа канал за прозрачност.

Защо PNG има 5 предсказващи филтъра за сканиращи редове?

Deflate компресира повтарящи се байтови шаблони. Тъй като стойностите на пикселите в снимките или градиентите се променят постепенно, PNG филтрира всеки сканиращ ред (None, Sub, Up, Average, Paeth), като изчислява разликите между съседните пиксели. Това преобразува градиентните данни в низове от близки до нулата байтове, които се компресират значително по-добре чрез Deflate.

Поддържа ли PNG CMYK цветови пространства за търговски печат?

Не. Официалната спецификация на W3C за PNG умишлено ограничава цветовите типове до Grayscale, Indexed и 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

Конвертирайте графики във формат PSD на Adobe Photoshop в PNG изображения с пълна прозрачност на алфа канала директно във вашия браузър, без данните да се изпращат към сървър.