Grafică de rețea portabilă

Grafică de rețea portabilă
siglă
Extensie fișier : .png
Tip MIME : imagine / png
Număr magic : 8950.4e47.0d0a.1a0a hex
\ x89PNG \ r \ n \ x1a \ n

( Notație ASCII-C )

Dezvoltat de: PNG Development Group (datorită W3C )
Tip: Bitmap fără pierderi - format grafic
Extins la: APNG , JNG , MNG
Standard (e) : ISO 15948 , IETF RFC 2083
Site web : libpng.org/pub/png

Portable Network Graphics ( PNG , engleză pentru grafică de rețea portabilă , de asemenea pronunțată silabă ca acronim [ pɪŋ ]) este un format grafic raster cu compresie de date fără pierderi . Este recunoscut de World Wide Web Consortium (W3C) și este cel mai utilizat format grafic fără pierderi de pe Internet.

PNG a fost un înlocuitor gratuit pentru cele mai vechi, până în anul 2006, cu revendicări de brevet încărcate în format grafic (GIF) și este mai puțin complex decât formatul de fișier de imagine etichetat (TIFF). În plus față de diferite adâncimi de culoare , PNG acceptă, de asemenea, transparența prin canal alfa . Fotografiile PNG sunt de obicei mult mai mari decât JPEG . Pentru o lungă perioadă de timp, formatul PNG nu a putut fi afișat cu ușurință în browsere, astfel încât a durat ani până să se afirme alături de JPEG și GIF.

istorie

Dezvoltarea formatului PNG a început la sfârșitul anului 1994, care este destul de târziu în comparație cu alte formate grafice, cum ar fi TIFF, GIF și JFIF (JPEG). Acest lucru a fost declanșat de cererile de licență de la compania de software Unisys pentru algoritmul Lempel-Ziv-Welch (LZW) utilizat de GIF .

La 4 ianuarie 1995, Thomas Boutell a prezentat o versiune preliminară (PBF Draft 1). Prima specificație PNG corectă (versiunea 1.0) de Thomas Boutell și Tom Lane a devenit recomandarea oficială a World Wide Web Consortium (W3C) la 1 octombrie 1996 . La 14 octombrie 1996, PNG a primit tipul MIME de către Internet Assigned Numbers Authority (IANA) . La 15 ianuarie 1997, PNG a fost adoptat de Internet Engineering Task Force (IETF) sub denumirea de RFC 2083 . La 31 decembrie 1998, a fost publicată versiunea 1.1 a specificației PNG, revizuită de Adam Costello și Glenn Randers-Pehrson. La 11 august 1999, Glenn Randers-Pehrson a publicat în cele din urmă ultima versiune 1.2. Acest lucru a fost ridicat la ISO standardul ISO / IEC 15948: 2003 la 10 noiembrie 2003 și, în același timp , a devenit cea de a doua ediție a recomandării W3C. image/png

Formatul PNG este acum utilizat pe scară largă; Mai presus de toate, a înlocuit GIF în graficele care sunt extrem de compresibile fără pierderi, cum ar fi butoane, pictograme și sigle. Este folosit în cea mai mare parte numai pentru fotografii dacă stocarea lor fără pierderi are prioritate față de o dimensiune mică a datelor, deoarece fotografiile cu compresie cu pierderi (de exemplu, prin JPEG) i. A. poate comprima și mai mult, fără pierderi semnificative de calitate pentru ochiul uman.

proprietăți

Moduri de culoare și precizie

Formatul PNG activează modurile de tonuri de gri , culoare completă și paletă de culori , precum și un nivel de tonuri de gri și un mod de culoare cu canal alfa (tipurile de culoare 0, 2, 3, 4 și 6).

Adâncimi de culoare

Pentru imaginile în tonuri de gri rezoluția poate fi de 1, 2, 4, 8 sau 16 biți pe pixel, pentru imaginile color 8 ( RGB 8) sau 16 biți (RGB16) per canal de culoare . Alternativ, imaginile color pot fi salvate cu până la 256 de culori indexate folosind modul paletei de culori. Culorile indexate pot fi selectate în mod liber din întregul spectru RGB8.

transparenţă

Fișierele PNG pot conține informații despre transparență, fie sub forma unui canal alfa, ca o singură culoare transparentă, fie ca o paletă de transparență care suplimentează o paletă de culori existentă care conține o valoare de transparență pentru fiecare culoare a paletei.

PNG acceptă canale alfa cu adâncime de 8 sau 16 biți. Este un canal cu informații suplimentare pentru fiecare pixel. Aceasta indică opacitatea la diferite niveluri a cât de mult din fundalul unei imagini ar trebui să strălucească. Dacă această valoare este 0, fundalul strălucește 100% complet. Dacă valoarea maximă de 255 este specificată pentru o adâncime de 8 biți (sau 65535 pentru 16 biți), aceasta corespunde acoperirii complete. În acest caz, fundalul nu este vizibil.

Formatul PNG permite astfel marginile textului și imaginilor să fie netezite, indiferent de fundal . Puteți utiliza umbre reale care se ascund în fundal.

Metadate și blocuri de date

Fișierele PNG sunt alcătuite din diferite blocuri de date („bucăți”), fiecare cu funcții diferite, care sunt identificate printr-un șir de patru litere (de exemplu tEXt pentru informații textuale). În plus față de tipurile de blocuri obligatorii IHDR, IDAT, PLTE și IEND, pe care fiecare implementare trebuie să le accepte, alte blocuri de date opționale sunt standardizate. Acestea pot conține metadate despre conținutul imaginii și alte informații suplimentare, cum ar fi corectarea culorii . Acestea pot fi editate cu programe precum TweakPNG . Aplicațiile pot defini, de asemenea, blocuri de date private în scopuri proprii. Adobe Fireworks folosește PNG ca format de aplicație și folosește blocuri private de date pentru a stoca diverse alte informații în acesta. Cu toate acestea, există și riscul confuziei cu fișierele PNG mult mai mici și normale.

Detalii tehnice

Antetul fișierului

Un fișier PNG începe întotdeauna cu următoarea semnătură de opt octeți ( număr magic ):

Octet (i) (hex) cometariu
89 Tabulator cu setul de bit 7
50 4E 47 Șir de caractere ASCII „PNG”; vă permite să identificați cu ușurință formatul de fișier atunci când îl vizualizați în text sau într-un editor de text.
0D 0A CR și LF ( MS-DOS- sfârșitul liniei tipice)
1A Semnul Sfârșitul fișierului .
Acest octet ar anula ieșirea dacă fișierul ar fi trimis cu comanda MS-DOS TYPE , de exemplu .
0A Linie de alimentare

Comprimare

Exemplu de fișier cu diferite tipuri de conținut
Reprezentarea costurilor de biți pe pixel ai imaginii PNG de mai sus
(închis / albastru: costuri mici de biți, verde: costuri medii, roșu: costuri mari de biți)

Comprimarea datelor fără pierderi în PNG se bazează pe mai mulți pași de procesare, uneori opționali. În primul rând, valorile pixelilor vecini pot fi decorelate cu un prefiltru pentru a le putea descrie într-o manieră mai compresibilă printr-o diferență față de valorile vecine. O metodă de compresie de substituție poate fi apoi utilizată pentru a încerca să recunoască tiparele de imagine recurente și să le înlocuiască cu referințe mai scurte înapoi la o apariție anterioară. În cele din urmă, se utilizează o codificare a entropiei care utilizează probabilitățile de apariție a valorilor individuale prin înlocuirea valorilor sortate după probabilitate cu coduri de lungime variabilă.

„Imaginea bananei” alăturată arată ce zone de imagine pot fi comprimate și cât de eficient.

Decorelarea

O imagine PNG cu 256 de culori, care are o dimensiune de doar 251 de octeți, datorită prefiltrului. Aceeași imagine ca un fișier GIF ar avea o dimensiune de peste 13 ori mai mare.

De regulă, valoarea culorii unui punct de imagine se corelează cu valorile punctelor învecinate, adică există o dependență sau o similitudine. Pentru a profita de aceste corelații, PNG acceptă pre-filtre, care decorelează mai întâi datele de ieșire. Ca rezultat, punctele de imagine sunt descrise folosind diferența față de punctele învecinate ( codificare delta ). Una din cele 5 opțiuni de filtrare poate fi definită pentru fiecare linie de imagine (vezi mai jos). Din motive de viteză, selecția se face adesea din punct de vedere euristic. Aceste filtre înlocuiesc valorile culorilor pixelilor într-un mod reversibil cu (la fel de multe, la fel de mari) valori de diferență. De regulă, acest semnal de diferență are o dinamică semnificativ mai mică, adică valori cu cantități în medie mai mici. Acestea pot fi comprimate mai eficient prin codificarea entropiei finale. Cu cât conținutul imaginii este mai uniform, cu atât funcționează acest mecanism. În timpul decodării, după ce datele au fost decomprimate, versiunile inversate ale filtrelor sunt utilizate pentru a restabili datele reale ale imaginii.

Această posibilitate este unul dintre motivele pentru care fișierele PNG au o dimensiune atât de mică.

În versiunea curentă, PNG definește cinci tipuri de filtre diferite:

număr Nume de familie Descriere
0 Nici unul Fără prefiltrare. Se utilizează datele originale ale pixelilor.
1 Sub Diferențele de pixel adiacente la stânga sunt procesate.
2 Sus Diferențele față de pixelul de mai sus sunt procesate.
3 In medie Diferența față de valoarea medie se calculează din pixelul de mai sus și pixelul de lângă acesta, în stânga.
Al 4-lea Paeth O așa-numită valoare Paeth Predictor este calculată din pixelul adiacent la stânga, cel de deasupra acestuia și cel diagonal de deasupra stânga , care determină pixelul pentru formarea diferenței.

Unii codificatori încearcă mai multe filtre pentru a îmbunătăți compresia. Aceasta este o tehnică obișnuită, în special cu numeroasele instrumente pentru optimizarea compresiei PNG.

În multe cazuri, Paeth Predictor, numit după inventatorul său, Alan W. Paeth , oferă cele mai bune rezultate. Cu aceasta, se încearcă folosirea automată a celor mai similare puncte de imagine din punctele de imagine învecinate din stânga, sus și stânga sus pentru formarea diferenței. Funcția selectează pixelul care se apropie cel mai aproape de stânga + sus - stânga sus.

Comprimarea substituției și codificarea entropiei

sunt efectuate conform popularei metode de dezumflare , deoarece aceasta poate fi utilizată în mod liber fără a fi împovărată de brevetele software . Include compresia de substituție conform Storer, Szymanski, Lempel și Ziv ( algoritmul LZSS ) și codificarea entropiei conform Huffman .

Multe programe integrează biblioteca de dezumflare gratuită zlib pentru deflare de codificare și decodare ( codec ) , care a fost creată special pentru PNG. Compresia Deflate poate fi setată de obicei (ca în alte aplicații - de exemplu cu compresie ZIP) în programul de ieșire în 10 niveluri de la 0 (niciunul) la 9 (cel mai bun).

Până în prezent, Deflate este singura metodă acceptată. Cu toate acestea, spațiul pentru extensii a fost lăsat în mod intenționat pentru a susține alți algoritmi mai eficienți sau mai rapizi în viitoarele versiuni PNG. Pentru a asigura compatibilitatea descendentă cu programele compatibile PNG existente, în prezent nu există planuri de includere a altor metode în standard.

compatibilitate

Profiluri de culoare

Cu excepția Safari și Firefox (după activare), niciun browser nu a acceptat încă profiluri de culoare încorporate (blocuri iCCP). Prin urmare, nu oferă o gestionare completă a culorilor. Deoarece Safari este singurul browser care afișează profiluri de culoare complete, în prezent nu este posibilă o afișare uniformă și multiplataformă a imaginilor în format PNG cu un profil de culoare încorporat. Această funcție este planificată pentru viitor, cel puțin pentru browserul Firefox. Pe de altă parte, valorile de corecție gamma încorporate (blocuri GAMA) sunt recunoscute și procesate corect de majoritatea browserelor actuale.

transparenţă

Microsoft Internet Explorer până la versiunea 6 a avut probleme cu afișarea fișierelor PNG transparente cu un canal alfa; Cu toate acestea, fișierele PNG cu transparență binară („da / nu”) au fost afișate fără erori.

Legal

Formatul PNG nu este supus niciunei restricții de brevet . Prin urmare, orice producător de software poate publica programe care pot citi și scrie PNG fără a plăti taxe de licență.

comparaţie

avantaje

  • Compresia este fără pierderi și în majoritate mai compactă decât formatele comparabile.
  • Suport al transparenței alfa (până la 16 biți, adică 65.536 niveluri; 8 biți sunt obișnuiți).
  • Suport pentru mecanisme de corecție a culorii și luminozității pentru a se asigura că o imagine arată aproximativ la fel pe sisteme diferite.
  • Formatul este supus unui standard fix și poate fi extins, astfel încât teoretic fiecare program trebuie să îndeplinească anumite cerințe minime. În plus, PNG este compatibil în sus și în jos, ceea ce reduce incompatibilitățile între diferite versiuni.
  • Sumele de verificare integrate permit detectarea erorilor din fișier într-un stadiu incipient.
  • Fișierele PNG sunt streamabile , ceea ce înseamnă că interpretarea conținutului fișierului nu necesită acces aleatoriu, așa cum este cazul multor fișiere TIFF .
  • Este disponibilă o intercalare opțională cu 7 rulări conform lui Adam M. Costello („ Adam7 ”), adică acumularea treptată a imaginii în timpul transmiterii pe linii de date lente. Chiar și cu transmisie foarte mică, este posibil un afișaj relativ util.
  • Este disponibilă asistență de la toate browserele web grafice (în Internet Explorer , cu toate acestea, transparența alfa este acceptată numai din versiunea 7.0).

dezavantaj

  • Modul oficial de afișare a animațiilor este formatul MNG , care nu este acceptat de niciun browser. În schimb, formatul APNG a prevalat pentru PNG animate . PNG-urile pot fi animate și sub formă de foi de calcul folosind diverse tehnologii web , așa cum sunt acceptate de Facebook , spre deosebire de GIF-urile animate.
  • PNG nu acceptă modelul de culoare CMYK și, prin urmare, nu este potrivit ca înlocuitor complet TIFF .
  • Metainformațiile încorporate sunt acceptate, dar nu respectă nici standardul Exif, nici standardul IPTC .
  • PNG nu permite încărcarea ușoară a părților unei imagini. Dacă doriți să încărcați doar o secțiune a imaginii, trebuie să încărcați în prealabil toate liniile imaginii. În cazul fișierelor PNG , care au fost salvate întrețesute , mai degrabă decât secvențial, chiar mai trebuie să fie încărcate.
  • Cu anumite tipuri de imagini (de exemplu, fotografii), formatul nu atinge, în principiu, ratele de compresie ale algoritmilor cu pierderi, cum ar fi JPEG . Algoritmii specializați în anumite clase de date de imagine, de exemplu pentru documentele scanate (de exemplu, JBIG2 ), comprimă astfel de conținut mai puternic decât PNG.

Comparație cu formatul de schimb de grafică (GIF)

În absența opțiunilor de animație, PNG este o alternativă incompletă la formatul GIF . Opțiunile de animație sunt externalizate într-un format separat cu PNG. Cele două formate împreună ar trebui să înlocuiască complet GIF; acest lucru nu s-a întâmplat până astăzi.

În plus față de modul paletei de culori, PNG acceptă, de asemenea, imagini color și în tonuri de gri cu o precizie de până la 16 biți pe canal de culoare. Cu GIF este posibilă declararea uneia dintre intrările paletului ca fiind complet transparentă.

Rata de compresie a PNG este de obicei mai bună decât cea a GIF. Pre-filtrele sunt motivul pentru care fișierele PNG ocupă de obicei mai puțin spațiu. Pe de altă parte, totuși, complexitatea formatului este, de asemenea, mai mare.

Cu structura progresivă a imaginii PNG cu întrețesere Adam7, apare o distorsiune a imaginii semnificativ mai mică decât cu GIF.

Până în 2004, utilizarea GIF a fost restricționată de utilizarea algoritmului brevetat LZW , din care PNG a fost gratuit de la început. (GIF a fost încă limitat de alte brevete până în octombrie 2006.)

Formate conexe

Nici MNG, JNG, nici APNG sau PNG + nu sunt recomandări W3C.

software

Implementarea oficială de referință pentru formatul PNG este biblioteca de programe libpng . Este supus unei licențe de software gratuit și, prin urmare, se găsește, de obicei, ca o importantă bibliotecă de sistem în sistemele de operare gratuite. PNGOUT și Zopfli PNG sunt codificatoare PNG bine cunoscute optimizate pentru cea mai compactă compresie. Există o serie de programe auxiliare pentru optimizarea dimensiunii fișierelor pentru fișierele PNG, care sunt cunoscute în principal pentru utilizarea lor în optimizarea timpilor de încărcare a site-ului web și care se bazează adesea pe aceste două codificatoare speciale, printre altele. Multe programe nu salvează în mod optim imaginile PNG, ceea ce duce la fișiere mari inutil. Diverse programe precum pngcrush , OptiPNG sau altele permit recompresia fără pierderi și adesea fișiere mult mai mici.

Toate browserele web moderne acceptă acum formatul. Programele importante de procesare a imaginilor o susțin de obicei atât în ​​citire cât și în scriere.

literatură

Link-uri web

Commons : Portable Network Graphics  - colecție de imagini, videoclipuri și fișiere audio

Dovezi individuale

  1. Tipuri de imagini media. Internet Assigned Numbers Authority , 27 septembrie 2009, accesat la 6 octombrie 2010 .
  2. Specificații PNG (Portable Network Graphics), versiunea 1.2. 12.12. Semnătura fișierului PNG. 14 iulie 1999, accesat la 6 octombrie 2010 .
  3. Utilizarea formatelor de fișiere imagine pentru site-uri web , engleză
  4. Sibylle Mühlke: Adobe Photoshop CC, ediția a VII-a 2018, p. 1051
  5. Linux Foundation Wiki: libpng - Specificații Prezentare generală ( memento al originalului din 05 septembrie 2014 în Internet Archive ) Info: Arhiva link - ul a fost introdus în mod automat și nu a fost încă verificată. Vă rugăm să verificați linkul original și arhivă conform instrucțiunilor și apoi eliminați această notificare. @ 1@ 2Șablon: Webachiv / IABot / wiki.linuxfoundation.org
  6. Jason Summers: TweakPNG , engleză
  7. Comparație a proprietăților (inclusiv compresia) BMP, GIF, PNG, JPEG, TIFF, PCX și TGA , accesată la 10 octombrie 2012
  8. Stephan T. Lavavej: Introducere în PNG. În: nuwen.net. Adus la 6 octombrie 2010 .
  9. libpng. Adus la 13 iulie 2013 .
  10. Cosmin Truța: Un ghid pentru optimizarea PNG . (cu director de programe pentru recompresie fără pierderi, engleză)