Das PNG -Format (Portable Network Graphics, oder Ping-Format) ist ein Bitmap -Graphikdateiformat (raster). Es wurde 1995 als freie Alternative zum GIF-Format entwickelt, ein Benutzerformat dessen Rechte die Firma Unisys innehat (Eigentümer des LZW-Komprimierungsalgorithmus). Dies verpflichtet jeden Software-Herausgeber, der diesen Formattyp bearbeitet, ihnen eine Gebühr zu entrichten. So ist PNG auch ein rekursives Akronym für PNG's Not Gif.
Das PNG-Format ermöglicht die Speicherung von Schwarz-Weiß-Bildern (bis zu 16 Bits pro Pixel der Kodierungstiefe), Bilder mit echten Farben (True color bis zu 48 Bits pro Pixel der Kodierungstiefe) sowie indexierte Bilder, die eine Palette von 256 Farben benutzen.
Desweiteren unterstützt er die Transparenz pro Alpha-Schicht, das heißt die Möglichtkeit, 256 Transparenzstufen zu bestimmen, wobei das GIF-Format die Bestimmung einer einzigen Farbe der Palette als transparent ermöglicht. Es hat ebenfalls eine Verschachtelungsfunktion, die die schrittweise Anzeige des Bildes ermöglicht.
Die durch dieses Format angebotene Komprimierung ist eine Komprimierung ohne Verlust (lossless compression) , die zu 5 bis 25% besser ist als die GIF-Komprimierung.
Letztlich verläd PNG Informationen über das Bildgamma, was eine Gamme-Korrektur und eine Unabhängigkeit gegenüber den Anzeigegeräten ermöglicht. Fehlerkorrektur -Mechanismen werden ebenfalls in die Datei geladen, um ihre Unversehrtheit sicherzustellen.
Eine PNG-Datei besteht aus einer Unterschrift, mit der anzeigt werden kann, dass es sich um eine PNG-Datei handelt, und dann um eine Reihe von Elemente, die sich chunks nennen (der Begriff "Segmente" wird im weiteren Verlauf benutzt). Die Kennzeichnung einer PNG-Datei (in dezimaler Form) ist wie folgt :
137 80 78 71 13 10 26 10Dieselbe Kennzeichnung ist hexadezimaler Form ist :
89 50 4E 47 0D 0A 1A 0A
Jedes Segment (chunk) besteht aus 4 Teilen :
Die Segmente können in jeglicher Reihenfolge vorhanden sein (wenn sie nicht mit dem Segment des Kopfes beginnen (IHDR chunk) und mit dem Endsegment enden müssen (IEND chunk)
Die Hauptsegmente ( critical chunksgenannt) sind :
Die andere Segmente ( anciliary chunksgenannt) sind folgende :