Kép részei:

A fejléc után természetesen a kép egyes információi következnek. Egyes információmorzsák, illetve szeletek kritikusak, míg mások csak kompatibilitási, illetve további fejlesztési célokat szolgálnak, így kevésbé lényegesek. Ez a látszólag bonyolult koncepció teszi lehetővé a PNG további fejlesztését, illetve egyéb PNG-alapú fejlesztéseket. Ugyanilyen fájlszerkezetet használnak (a nem igazán  elterjedt) MNG, JNG és APNG formátumok is.

Ezek a szeletek alapvetően 4 részből állnak:

  • Szelet hossza – 4 bájt

  • Szelet típusa – 4 bájt

  • Szelet adatai – hossz változhat

  • Ellenőrző CRC-összeg – 4 bájt (CRC = Cyclic Redundancy Code)

Ezek a szeletek 4-betűs kis-/nagybetű-érzékeny ASCII kódolással rendelkeznek. Az első betű a szelet kritikus mivoltát jelzi a dekódolónak. Ha a karakter nagybetűs, akkor fontos a szelet, más esetben pedig mellőzhető. A kritikus szeletek olyan információkat tartalmaznak, amelyek feltétlenül fontosak a teljes fájl olvasásához. Ha a dekóder nem ismeri fel a szelet kritikus mivoltát és mellőzi azt, akkor ki kell lépnie a fájl olvasásából; de alkalmazástól függően küldhet megfelelő figyelmeztetést is a felhasználónak.

A szelet második betűje a nyilvánosságot (nagybetű) vagy a privát (kisbetű) mivoltát jelzi. Ez biztosítja, hogy a publikus közszféra, illetve a magánszféra soha ne ütközzön; bár ez a megoldás sajnos azt nem biztosítja, hogy két magánszférás kódolás ne ütközzön.

A harmadik betű nagybetűje jelzi, hogy az illető fájl megfelel-e a PNG előírásainak. Bár a valódi jelentése még nem igazán ismert, mivel inkább a jövőbeli fejlesztéseknek van fenntartva.

A negyedik betű jelzi a képszerkesztőknek jelzi, hogy a fájl biztonságosan másolható-e. Ha kisbetűs, akkor a fájl szelete biztonságosan másolható az egyes változtatások számától és minőségétől függetlenül. Ha ez nagybetű, akkor csak akkor másolható, ha a változások nem érték el a kritikus szeleteket.

Kritikus és (néhány) nem kritikus szeletek:

Fontos, hogy a dekóder ezen szeleteket biztonságosan olvassa, mivel csak így tudja helyesen megjeleníteni a PNG fájlt.

  • IHDR: ez tartalmazza a fejlécet

  • PLTE: a palettát tartalmazza. Gyakorlatban a színek listáját.

  • IDAT: a képet tartalmazza, bár ezt több IDAT szeletben is le lehet kódolni. Tény, hogy ezáltal kicsit növekszik a fájlméret, de ezáltal lehetővé válik a PNG fájlok streaming módban való megjelenítése.

  • IEND: a kép vége.

  • bKGD: alapértelmezett háttérszín. Nem alapvető. Akkor kell használni, ha nincsen jobb választás. Webes böngészőkben ezt más megoldással érik el.

  • iTXt: UTF-8-as kódolással tartalmaz szöveget. Nyelv választható. Nem alapvető.

  • pHYs: Képméret, illetve képarány. Nem alapvető.

  • tIME: a kép utolsó változtatásának ideje. Nem alapvető.

  • tRNS: átlátszósági információk. Nem alapvető.

Színmélység és átlapolás:PNG sorrend

A használt színek, illetve színcsatornák száma alapvetően attól függ, hogy a a kép szürkeárnyalatos-e, valamint, hogy használja-e az alfa-csatornát. A PNG számos kombinációt tesz lehetővé.

A csak szürke árnyalatait megjelenítő képek mellett lehetővé válik a 24 bites színmélységű truecolor képek megjelenítése is, valamint a kibővített, 24 bites színmélységűek is jól tárolhatóak.

A PNG 2-dimenziós, 7-utas megjelenítési technológiát tesz lehetővé. Ez az Adam7 algoritmus. Így lassú átvitel vagy nagy méretű kép esetén már a letöltés elején látni lehet elnagyoltan (kis felbontásban) a kép tartalmát, ami a letöltés előrehaladtával fokozatosan nyeri el részletgazdagságát. Ez jóval több lehetőséget ad, mint a GIF maga 1-dimenziós, 4-utas módszere. Ezt mutatja az oldalt is látható kis kép. (16x16-os kis kép Adam7-es megjelenítése átlapolással) Eredetije: http://en.wikipedia.org/wiki/Portable_Network_Graphics

Animáció:

Habár maga a PNG alapformátuma nem támogatja az animációt, de ennek kiküszöbölésére számos más megoldás létezik, például a MNG típus, melyet szintén a PNG csoport tagjai hoztak létre. (Hivatalos dátum: 2001. január 31.) Az MNG alapvetően a PNG struktúráját és szeleteit örökölte, de az animáció miatt sokkal bonyolultabb fájlszerkezete van és persze más a fájl-azonosítója, mint az elődjének. Ezen bonyolítások hatására a legtöbb PNG-dekóder nem tudja jól megjeleníteni az MNG-képeket.

Éppen ez a bonyolultság eredményezte, hogy a Mozilla Alapítvány önálló, APNG nevű formátumot javasolt, mint a PNG animációs utódját. Ennek szintén a PNG az alapja, de jóval egyszerűbb, mint az MNG. Maga az APNG szintén képes megjeleníteni egy teljes (szimpla) PNG képet. Azonban ezen formátumok egyike sem támogatott elég széleskörűen, bár az APNG-t a Firefox 3.0 és az Opera 9.5 feletti verziói támogatják.

(URL: http://my.opera.com/desktopteam/blog/2007/09/14/opera-9-5-build)

 

Felhasznált szakirodalom:

© TFeri.hu, 2009

Felújítva: 2016. és 2020.