PNG (lühend ingliskeelsest nimetusest Portable Network Graphics) on rastergraafika failivorming, mis toetab kadudeta tihendust. PNG loodi parendatud ja patendivaba asendusena GIF-vormingule. PNG on internetis kõige enam kasutatav pilditihendusvorming.[1]

Example alt text
Näide läbipaistvusefektiga PNG-pildist

PNG toetab paletipõhiseid pilte (paletid koosnevad kas 24-bitistest RGB või 32-bitistest RGBA värvidest), hallskaalal põhinevaid kuvandeid ning täisvärvilisi mittepaletipõhiseid RGB[A] pilte. PNG kavandati, et võimaldada interneti kaudu mugavamalt pilte üle kanda. Kuna see polnud mõeldud professionaalse printimisgraafika edasiandmiseks, siis ei toeta see mitte puna-rohe-siniseid värvimudeleid nagu CMYK.

PNG-vormingus failide failinimelaiend on PNG või png ning nimelaiend image/png. 1996. aastal kiitis selle heaks IESG (Internet Engineering Steering Group)[2] ning 2004. aastal avaldati see ISO/IEC standardina.[3]

Ajalugu

muuda

1995. aastal patenteeris IT-ettevõte Unisys GIF-vormingu poolt kasutatava Lempel-Ziv-Welch pakendusalgoritmi, mis ajendas alternatiivvormingu otsingut. Samuti puudus GIF-vormingul võimatus kuvada üle 256 värvi.

1995. aastal algatati Useneti uudisterühmas jutulõng, kus arutati GIF-vormingu võimalikku asendusvormingut. Seal tehti palju ettepanekuid, mis said hiljem PNG-vormingu osaks. Samast jutulõngast pärineb ka nimi PING (PING is not GIF) ning faililühend PNG, mida pakkus välja Oliver Fromme, DOS-operatsioonisüsteemi populaarse JPEG vaaturi QPEG looja.[4]

Ühtlasi otsustati, et PNG ei hakka toetama animatsioone[5]. 2001. aastal avaldasid PNG loojad uue failivormingu MNG (Multiple-image Network Graphics) spetsifikatsiooni[6], mis siiski võimaldas kasutada liikuvaid elemente. MNG ei leidnud laialdast toetust veebibrauserite seas ning tänapäeval on vorming enamjaolt unustatud.

  • 1. oktoober 1996 – avaldati esimene PNG spetsifikatsioon (Version 1.0), hiljem ilmnes see 2083. kommentaarinõudena. PNG-vormingust sai W3C soovitus.
  • 31. detsember 1998 – väikeste muudatustega avaldati spetsifikatsiooni järgmine versioon – 1.1.
  • 11. august 1999 – avaldati spetsifikatsiooni versioon 1.2.
  • 10. november 2003 – PNG-vormingust sai rahvusvaheline standard (ISO/IEC 15948:2003).
  • 3. märts 2004 – uuendati PNG rahvusvahelist standardit ISO/IEC 15948:2004[3].

Võrdlus teiste failivormingutega

muuda

GIF (Graphics Interchange Format)

muuda
  • Väikeste piltide korral saavutab GIF-vorming suurema tihenduse kui PNG-vorming.
  • Välja arvatud ülaltoodud juhtumi korral on GIF-vormingus piltidel suurem failimaht kui hästi indekseeritud PNG-vormingus piltidel.
  • PNG-vorming toetab GIF-vorminguga võrreldes palju laiema läbipaistvusulatuse, kaasaarvatud alfakompositsioonilist läbipaistvust.
  • Kui GIF-vorming on piiratud 8-bitiga indekseeritud värvidega, siis PNG-vorming lubab kasutada palju laiema valiku värvisügavuseid, nagu 24-bitist (8 bitti kanali kohta) ja 48-bitist (16 bitti kanali kohta) True Color, toetades suuremat värvitäpsust, sujuvamaid üleminekuid jms[7]. Juhul, kui PNG-vormingus pildile on lisatud alfakanal, võimaldab see kasutada kuni 64 bitti piksli kohta (enne tihendamst).
  • Juhul, kui PNG-vormingus kasutab pilt rohkem kui 256 värvi, siis selle teisendamisel GIF-vormingusse võib kvaliteet kannatada.
  • Kui GIF-vormingus piltidesse on sisseehitatud liikuvate piltide toetus, siis PNG-vorming võimaldab seda vaid mitteametlike laienduste kaudu.

PNG-vormingus piltidel on halvem toetus vanemates veebibrauserites nagu Internet Explorer 6.[8]

JPEG (Joint Photographic Experts Group)

muuda
 
Komposiitpilt, mis võrdleb kadudega JPEG tihendust ning kadudeta PNG tihendust

Kuna JPEG-vorming kasutab kadudega kodeerimismeetodit, mis oli loodud spetsiaalselt fotograafiliste piltide jaoks, siis suudab JPEG-vorming luua väiksema failimahuga pilte võrreldes PNG-vorminguga juhul, kui tegemist on fotode ja fotodega sarnanevate piltidega. Sellistes piltides domineerivad pehmed ja madala kontrastilisusega ülekäigud. Kasutades selliste piltide jaoks kõrgekvaliteedilises JPEG-vormingus pildi asemel PNG-vormingus pilti, on tulemuseks märgatavalt suurema mahuga fail, kuid mittearvestatav pildikvaliteedi paranemine. Samas, kui salvestatavad pildid sisaldavad järske üleminekuid ning ulatuslikke ühevärvilisi osi, näiteks teksti või tasapinnagraafikat, siis võib PNG-vorming tihendada pildiandmeid isegi rohkem kui JPEG-vorming. Lisaks sellele tihendab PNG-vorming kadudeta, samas kui JPEG-vorming tekitab kõrgkontrastiliste alade ümber märgatavat pildimüra. Samuti ei toeta JPEG-vorming läbipaistvust.

Kuna JPEG-vorming kasutab kadudega tihendust, siis mõjutab korduvalt kodeeritud pilti genereerimiskahju, mille tõttu kaotab see iga salvestamisel informatsiooni ning pildi kvaliteedi halveneb. PNG-vorming on aga kadudeta ning sobib mitu korda muudetavatele ja salvestavatele piltidele paremini.

PNG ei toeta Exifi metaandmete talletuse vormingut. Metaandemete salvestamiseks kasutab PNG-vorming abiandmestruktuure.

Kuna esimesed veebibrauserid ei toetanud PNG-vormingus pilte, siis kasutati enamasti GIF- ja JPEG-vormingus pilte. JPEG-vormingus piltide tihendus tekitas värviüleminekutes ähmasust, mistõttu mindi üle PNG-vormingus piltidele. Uuemates veebibrauserites on kasutatud värviüleminekute loomiseks CSS-i, mistõttu PNG otsene eelis selles valdkonnas kaob.

TIFF (Tagged Image File Format) on vorming, mis hõlmab erakordse hulga valikuid. See teeb TIFF-vormingu kasulikuks professionaalsete pilditöötlusprogrammide vahel piltide vahendamiseks. See toob kaasa ka selle, et pilditöötlusele mittespetsialiseeritud programmid (nt veebibrauserid) ei toeta seda nii laialdaselt. Ulatuslik laiendatavus toob kaasa selle, et enamik programme ei suuda kasutada kõiki vormingu võimalusi, mis võib tekitada kasutajate seas segadust ja negatiivselt mõjutada ühilduvust.

Tarkvaratoetus

muuda

PNG ametlik baasteostus on programmeerimisteek libpng[9]. Seda avaldatakse vabavarana litsentsiga "Permissive free software license".

Toetus pilditöötlusprogrammides

muuda

PNG-vormingut toetavad paljud pilditöötlusprogrammid, näiteks Adobe Photoshop, Photo-Paint, Paint Shop Pro, GIMP, GraphicConverter, Helicon Filter, ImageMagick, InkScape, IrfanView ning paljud muud[10]. Samuti toetavad PNG-vormingut populaarsete operatsioonisüsteemidega kaasa tulevad Windowsi Microsoft Paint ning Apple'i iPhoto ja Preview.[10]

Veebitoetus

muuda

Esimesed veebibrauserid, mis toetasid PNG-vormingus pilte, olid Internet Explorer 4.0b1 ja Netscape 4.04[11]. Vormingu omaksvõtmine oli aeglustatud, kuna Internet Exploreri algusaja versioonidel esines PNG-vormingus piltide kasutamisel palju probleeme. Tänapäeval toetavad PNG-vormingus pilte peaaegu kõik nüüdisaegsed veebibrauserid nagu Apple Safari, Mozilla Firefox, Opera, Google Chrome ja paljud teised[11].

Ikoonide toetus operatsioonisüsteemides

muuda

Enamik Linuxi distributsioone toetab PNG-vormingus ikoone läbi GNOME töölauakeskkonna[12]. Windowsis ilmus see funktsioon koos Windows Vistaga 2006[13]. aastal. Ka Mac OS X[14], iOS[14], MorphOS[15] ja Android[16] toetavad PNG-vormingus ikoone.

Viited

muuda
  1. Matthias Gelbmann (31. jaanuar 2013). "The PNG image file format is now more popular than GIF" (inglise keeles). Q-Success. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  2. Glenn Randers-Pehrson (6. mai 2015). "Registration of new Media Type image/png" (txt) (inglise keeles). Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  3. 3,0 3,1 International Organization for Standardization (19. september 2012). "ISO/IEC 15948:2004" (inglise keele). International Organization for Standardization. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  4. Tom Lane. "Thoughts on a GIF-replacement file format" (inglise keeles). Google. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  5. Boutell; et al. "PNG (Portable Network Graphics) Specification Version 1.0" (inglise keeles). Boutell.Com, Inc. Lk 39. Vaadatud 28.01.2016. {{netiviide}}: et al.-i üleliigne kasutus kohas: |autor= (juhend)CS1 hooldus: tundmatu keel (link)
  6. Glenn Randers-Pehrso; et al. "MNG (Multiple-image Network Graphics) Format Version 1.0" (inglise keeles). PNG development group. Vaadatud 28.01.2016. {{netiviide}}: et al.-i üleliigne kasutus kohas: |autor= (juhend)CS1 hooldus: tundmatu keel (link)
  7. Greg Roelofs (14. märts 2009). "A Basic Introduction to PNG Features" (inglise keeles). Greg Roelofs. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  8. Jennifer Farley (3. august 2009). "GIF, PNG, JPG. Which One To Use?" (inglise keeles). SitePoint Pty. Ltd. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  9. Guy Eric Schalnat, Andreas Dilger, John Bowler, Glenn Randers-Pehrson; et al. (15. jaanuar 2016). "libpng" (inglise keeles). Greg Roelofs. Vaadatud 28.01.2016. {{netiviide}}: et al.-i üleliigne kasutus kohas: |autor= (juhend)CS1 hooldus: mitu nime: autorite loend (link) CS1 hooldus: tundmatu keel (link)
  10. 10,0 10,1 Greg Roelofs (20. september 2015). "Image Editors with PNG Support" (inglise keeles). Greg Roelofs. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  11. 11,0 11,1 Greg Roelofs (11. aprill 2011). "Browsers with PNG Support" (inglise keeles). Greg Roelofs. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  12. Alexander Larsson, Frans Englich. "Icon Theme Specification" (inglise keeles). The GNOME Project. Originaali arhiivikoopia seisuga 6.09.2015. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  13. Axialis Software Team (21. mai 2007). "Introducing Windows Vista™ Icons" (inglise keeles). Axialis Software. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  14. 14,0 14,1 "Designing App Icons" (inglise keeles). Apple Inc. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  15. Elena (6. juuni 2004). "NEW! 32bit PNG icons on your Amiga !!! (68K and MorphOS)" (inglise keeles). Aminet. Vaadatud 01.28.2016. {{netiviide}}: kontrolli kuupäeva väärtust: |vaadatud= (juhend)CS1 hooldus: tundmatu keel (link)
  16. "Supporting Multiple Screens" (inglise keeles). Google Inc. Vaadatud 28.01.2016.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  NODES
INTERN 8
Project 1