Imagine PNG (.png)

W3C Standard

Portable Network Graphics (PNG) este un format de fișier grafic raster fără restricții care acceptă compresie de date fără pierderi, culori indexate și transparență variabilă a canalului alfa.

Convertește din PNG în JPG

Convertor gratuit din PNG în JPG direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.

Comprimă PNG online

Privat - fișierele nu părăsesc niciodată dispozitivul tău

Inspectare și metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele PNG prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (octeți magici)

Sistemele de operare și analizatoarele de fișiere identifică fișierele PNG prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):

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

REPREZENTARE ASCII: .PNG....

Standardizare: W3C Recommendation (1996) / ISO/IEC 15948:2004

Specificații tehnice

Arhitectură containerContainer binar bazat pe segmente cu verificare CRC32 pe 4 octeți per segment
CompresieDeflate (codificare LZ77 + Huffman) cu 5 filtre predictive de linii de scanare (None, Sub, Up, Average, Paeth)
Ordinea octețilorBig-Endian (ordinea octeților de rețea) pentru lungimile segmentelor, dimensiuni și CRC-uri
Spații de culoaresRGB, Display P3, Paletă indexată (1-8 biți), Tonuri de gri, Culoare reală (24/48 de biți)
Canale și structurăRGB + Alpha (Până la 16 biți pe canal / RGBA pe 64 de biți)
Dimensiuni maxime2,147,483,647 x 2,147,483,647 pixeli (întregi fără semn pe 4 octeți)
TransparențăCanal de transparență alfa variabil complet pe 8 biți / 16 biți
Streaming și progresivAlgoritmul de întrepătrundere Adam7 în 7 pași permite randarea progresivă 2D a liniilor de scanare

Matrice de comparație tehnică: PNG vs. concurenți

Atribut tehnicPNG (Curent)WebPAVIFJPEG
Tip de compresieStrict fără pierderi (Deflate + filtre predictive 2D)Cu pierderi (VP8) și fără pierderi (VP8L)Cu pierderi (AV1 intra) și fără pierderiStrict cu pierderi (transformare cosinusoidală discretă)
Transparență alfaCanal alfa variabil complet pe 8 biți / 16 bițiCanal alfa pe 8 biți acceptatAlfa acceptat pe 8 biți / 10 biți / 12 bițiFără suport pentru canalul de transparență
Dimensiunea fișierului (fotografii)Mare (de obicei de 3x până la 6x mai mare decât în cazul formatelor cu pierderi)Mic (cu 25%-35% mai mic decât JPEG)Ultra-mic (cu 40%-55% mai mic decât JPEG)Bază medie
Dimensiunea fișierului (grafică/interfață utilizator)Extrem de compact pentru capturi de ecran, desene liniare și textMod fără pierderi excelentBun, dar mai lent la codificareSlab (produce artefacte de tip ringing de-a lungul marginilor ascuțite)
Compatibilitate cu browserul100% universal în toate browserele din 1998Suport de peste 97% în browserele moderneSuport de peste 93% în browserele moderne100% universal

Moduri comune de corupție și ghid de recuperare hexazecimală

Vizualizatorul de imagini afișează „Eroare fatală: Fișier PNG nevalid” sau nu reușește să se deschidă.

Cauză principală: Primii 8 octeți au fost modificați de un mod de transfer ASCII (transformând 0x0D 0x0A în 0x0A sau 0x0D 0x0D 0x0A).

Recuperare: Deschide fișierul într-un editor hexazecimal și verifică dacă primii 8 octeți corespund secvenței „89 50 4E 47 0D 0A 1A 0A”. Restaurarea exactă a acestor 8 octeți din antet recuperează frecvent imaginea.

pngcheck raportează „Eroare CRC în segmentul IDAT” sau imaginea se încarcă parțial cu liniile de scanare inferioare corupte.

Cauză principală: Corupție de biți în fluxul de date zlib comprimat sau sumă de control CRC32 nevalidă într-un segment IDAT.

Recuperare: Utilizează pngcheck -f sau utilitarele de recuperare a fluxului Deflate pentru a recalcula valorile CRC32 valide sau pentru a decomprima liniile de scanare intacte până la blocul corupt.

Imaginea se randează bine în vizualizatoarele desktop, dar eșuează în aplicațiile iOS.

Cauză principală: iOS se așteaptă la formatul CgBI proprietar al Apple, cu octeții reordonați, sau la segmente de spațiu de culoare nestandard.

Recuperare: Normalizează imaginea folosind „pngcrush -revert-iphone-optimizations" pentru a restaura ordinea standard W3C RGBA.

Analiză de securitate și vectori de atac asupra parserului

PNG este acceptat de multe sisteme de operare și aplicații. Riscurile de securitate includ epuizarea memoriei decodorului și blocuri auxiliare rău intenționate.

Vectori de atac cunoscuți

  • Segmente de metadate tEXt și zTXt supradimensionate care declanșează atacuri de tip refuz al serviciului prin epuizarea memoriei (OOM) în decodoare fără sandbox.
  • Vulnerabilități de depășire a bufferului de memorie heap în versiunile libpng vechi (de exemplu, CVE-2015-8126 în png_set_PLTE).
  • Atacuri de decompresie prin inundație de pixeli în care o imagine cu dimensiune mică a fișierului declară dimensiuni enorme (de exemplu, 100.000 x 100.000 pixeli).
  • Exfiltrare steganografică care ascunde sarcini utile criptate în segmente private auxiliare (de exemplu, eXIf sau tipuri de segmente personalizate).

Cele mai bune practici de securitate: Validează întotdeauna dimensiunile imaginii înainte de a aloca buffere de pixeli în memorie. Elimină segmentele auxiliare neesențiale (eXIf, tEXt) la încărcările utilizatorilor folosind un program de curățare cu gestionare sigură a memoriei.

Origini istorice și repere

2004Standardizat internațional ca ISO/IEC 15948.
1996PNG 1.0 a fost publicat ca recomandare W3C.
1995Creat pe Usenet comp.graphics ca înlocuitor deschis pentru GIF în urma aplicării taxei de brevet LZW de către Unisys.

Avantaje cheie și beneficii

  • PNG folosește compresie fără pierderi, astfel că encodarea unei imagini nemodificate nu introduce pierderi de compresie; editarea sau conversia culorilor poate totuși schimba valorile pixelilor.
  • Transparența alfa lină pe 8 biți permite o îmbinare curată pe fundaluri complexe.
  • Corecția gamma și segmentele de cromatică asigură o randare consecventă pe diverse monitoare.

Limitări tehnice și dezavantaje

  • Dimensiuni de fișiere semnificativ mai mari în comparație cu formatele moderne cu pierderi, cum ar fi WebP sau AVIF, pentru conținut fotografic.
  • Fără animație nativă cu mai multe cadre în PNG standard (necesită extensia APNG).
  • Adâncimea mare a biților (16 biți pe canal) creează buffere de decodare în memorie necomprimate uriașe.

Curiozități tehnice interesante

  • Antetul magic de 8 octeți a fost conceput special pentru a detecta corupția de sfârșit de linie CR/LF cauzată de transferurile FTP.
  • Acronimul recursiv neoficial pentru PNG a fost „PNG's Not GIF”.
  • Apple utilizează un segment proprietar CgBI în fișierele PNG pentru aplicații iOS care inversează RGBA în BGRA pentru randare directă pe GPU.

Întrebări tehnice frecvente

De ce crește uneori dimensiunea unui fișier PNG când este salvat în editoarele de imagini?

Diferite pachete software utilizează niveluri diferite de compresie Deflate și heuristici de filtrare predictive a liniilor de scanare. Programe precum Photoshop adaugă frecvent profile de culoare necomprimate, blocuri de metadate XMP și dimensiuni neoptimizate ale segmentelor IDAT. Instrumente dedicate precum File2File.app Compressor reevaluează toate cele 5 filtre de scanare pentru a obține o dimensiune minimă a fișierului.

Care este diferența dintre PNG-8 și PNG-24?

PNG-8 utilizează o paletă de culori indexată de până la 256 de culori (similară cu GIF), producând fișiere foarte mici, potrivite pentru pictograme simple. PNG-24 acceptă 16,7 milioane de culori (culoare reală, 8 biți pe canal), iar PNG-32 adaugă un canal alfa de 8 biți pentru transparență.

De ce are PNG 5 filtre predictive pentru liniile de scanare?

Deflate comprimă modelele de octeți repetați. Deoarece valorile pixelilor fotografici sau ale degradeurilor se schimbă treptat, PNG filtrează fiecare linie de scanare (None, Sub, Up, Average, Paeth) prin calcularea diferențelor dintre pixelii adiacenți. Acest lucru transformă datele de degrade în șiruri de octeți a căror valoare este aproape zero, care se comprimă dramatic mai bine cu Deflate.

Acceptă PNG spațiile de culoare CMYK pentru tipărirea comercială?

Nu. Specificația oficială W3C PNG restricționează în mod deliberat tipurile de culori la tonuri de gri, culori indexate și RGB. Fluxurile de lucru de tipărire profesională care necesită CMYK trebuie să utilizeze containere TIFF sau PDF.

Perechi de conversie PNG conexe

PNG în JPG

Conversia imaginilor raster PNG în format JPEG reduce dimensiunea fișierului prin aplicarea unei compresii cu pierderi, ceea ce face ca imaginile să se încarce mai repede pe site-uri web și să utilizeze mai puțin spațiu de stocare.

JPG în PNG

Conversia unei imagini raster JPEG cu pierderi de date într-o imagine raster PNG fără pierderi previne degradarea suplimentară a imaginii și adaugă suport pentru transparența canalului alfa.

PNG în WEBP

Conversia imaginilor PNG în WebP poate reduce dimensiunea fișierului păstrând transparența; rezultatul depinde de folosirea codificării cu sau fără pierderi și de conținutul imaginii.

WEBP în PNG

Conversia din WebP în PNG creează o imagine statică pentru programele care acceptă PNG; animația WebP nu este păstrată, iar detaliile pierdute prin compresia sursei nu pot fi recuperate.

HEIC în PNG

Conversia HEIC în PNG transformă fotografiile comprimate HEVC cu pierderi în fișiere grafice fără pierderi, larg acceptate.

SVG în PNG

Conversia fișierelor vectoriale SVG în imagini raster PNG transformă grafica scalabilă bazată pe cod în grile de pixeli fixe, pentru compatibilitate cu o gamă largă de aplicații.

PNG în SVG

Învelește imagini raster PNG într-un container vectorial SVG XML pentru scalare adaptabilă pe web și integrare în machete compatibile cu vectori.

PSD în PNG

Convertește grafica Adobe Photoshop PSD în imagini PNG fără pierderi, cu transparență completă pe canalul alfa, direct în browser și fără transmiterea fișierelor către server.