Farbtiefe: Das Format unterstützt Graustufenbilder mit 1, 2, 4, 8 und 16 Bit pro Pixel. Bei Farbbildern mit Palette sind 1, 2, 4 und 8 Bit und bei TrueColor-Bilder ohne Palette sind 24 und 48 Bit pro Pixel zugelassen. Außerdem kann ein Alpha-Kanal mit bis zu 16 Bit gespeichert werden.
Geschichte: Als das weitverbreitete GIF-Format im Jahre 1995 durch Lizenzrechte geschützt wurde, war es Zeit für ein neues, besseres und vor allem freies Grafikformat. Entwickelt von der 'PNG Development Group' und verbreitet von der W3-Organisation setzt sich das Format langsam durch. Alle aktuellen Grafikprogramme können PNG-Dateien laden und/oder speichern. Und für Internet-Browser, die das Format noch nicht kennen, gibt es verschiedene Plug-Ins.
Kompression: Das PNG-Format benutzt eine sehr gute, verlustfreie Kompression, die auf einem modifizierten LZ77-Algorithmus basiert. Oft erreicht es bessere Kompressionsraten als GIF. Die entsprechende PNG-Datei ist dann 5% bis 25% kleiner. Im Extremfall kann es aber auch vorkommen, dass die PNG-Datei mehr als doppelt so groß wie die vergleichbare GIF-Datei ist.
Wichtig für die Stärke der Kompression sind die sogenannten Filter. PNG kennt fünf verschiedene: None, Sub, Up, Average und Path. 'None' bedeutet aber nicht, dass die Bilddaten unkomprimiert sind! Die Filtertypen beziehen sich allein auf die Art der Kompression: Wie werden die Bildpunkte miteinander verrechnet? (None=Bildpunkte werden unverändert bearbeitet, Sub=die Differenz zum vorhergehenden Bildpunkt wird gespeichert, Up=die Differenz zum darüberliegenden Bildpunkt wird gespeichert, Average=der linke und obere Bildpunkt wird zur Berechnung des aktuellen Punktes verwendet, Path=der aktuelle Bildpunkt berechnet sich aus den drei Punkten links, oberhalb und links oben)
Welcher Filter die besten Ergebnisse liefert, hängt vom Inhalt des Bildes ab. Hier hilft nur Ausprobieren. Einige Programme (z.B. der PhotoShop auf dem Macintosh) suchen sich selbst den besten Filter aus. Hierzu muß man die Option 'Adaptive' auswählen.
Qualität: Die PNG-Kompression arbeitet immer ohne Qualitätsverlust.
Transparenz: PNG-Bildern können - ähnlich wie GIF - teilweise transparent sein. Die Möglichkeiten dazu sind allerdings wesentlich umfangreicher: Bei Graustufen- und TrueColor-Bilder kann eine einzelne Farbe als transparent definiert werden. Bei Farbbildern mit Palette kann für jeden Paletteneintrag ein getrennter Transparenzwert von 0 bis 255 festgelegt werden. Die meisten Möglichkeiten (und den höchsten Platzbedarf) bietet ein optionaler Alphakanal. Dabei werden für jeden einzelnen Bildpunkt gesonderte Transparenzwerte festgelegt, die eine Genauigkeit von 8 oder sogar 16 Bit annehmen können.
Animation: Damit PNG als Nachfolger von GIF akzeptiert wird, darf natürlich eine der wichtigsten Funktionen nicht fehlen: Animation. Und auch hier bietet PNG mehr Möglichkeiten als GIF. So werden die Teilbilder in Abhängigkeit voneinander komprimiert. Damit sind wesentlich bessere Kompressionsraten möglich als beim GIF-Format.
Interlaced: Im Internet ist diese Funktion besonders wichtig. Das Bild ist bereits grob erkennbar, selbst wenn nur ein Bruchteil der Datei geladen wurde. Bei PNG funktioniert auch das besser als bei GIF: Das Bild baut sich nicht zeilen- sondern blockweise auf. So kann man das endgültige Bild noch früher erkennen.
Weitere Features: Die Spezifikationen von PNG weisen viele Besonderheiten auf, die kaum ein anderes Bitmapformat bietet. Ein Vorteil ist beispielsweise die geringe Fehleranfälligkeit. Jeder Teil der PNG-Datei wird mit einer eigenen Checksumme (CRC32) versehen - so sollte jedes Programm sofort erkennen, wenn ein fehlerhaftes Bild vorliegt. Weiterhin sind folgende Spezialitäten vorgesehen: Eine Hintergrundfarbe für das Bild, ein Gamma-Wert, eine Histogramm-Tabelle (Wie häufig kommt jede einzelne Palettenfarbe im Bild vor?), Werte zur Farbkalibrierung, ein ungleiches Seitenverhältnis (z.B. 10x20 Pixel und trotzdem quadratisch), unübliche Farbtiefen (z.B. werden 5 Bit pro Pixel mit 8 Bit gespeichert, wobei die Bits 5-7 ignoriert werden), zusätzliche Textinformationen innerhalb der Datei (z.B. Titel, Author, Copyright usw.) und der Zeitpunkt der letzten Änderung.
Typische Software: Paint Shop Pro, QPV/386 und alle neueren Grafikprogramme
Interner Aufbau: Die
ersten 8 Byte einer PNG-Dateien enthalten die Signatur 89 50 4E 47 0D 0A
1A 0AH. In dieser Signatur ist die Zeichenfolge PNG
enthalten und gleichzeitig bedeutet sie, daß die Datei ein einzelnes
Bild enthält. Der Rest der PNG-Datei ist in verschiedene Datenblöcke
(Chunks) aufgeteilt. Diese Blöcke besitzen immer die selbe Struktur:
Zuerst vier Bytes mit der Länge des Datenbereiches, dann eine vier Byte
lange Signatur für den Chunk-Typ, dann die Daten und am Ende eine vier
Byte lange Checksumme. Unterschieden werden kritische Chunks (der erste
Buchstabe des Chunk-Typs ist groß) und untergeordnete Chunks (der erste
Buchstabe ist klein). Diese untergeordneten Blöcke können eventuell
übersprungen werden, wenn das Grafikprogramm sie nicht kennt oder
benötigt.
Für eine genauere Beschreibung des PNG-Formates fehlt mir leider die Zeit. Dabei ist gerade dieses Format für Programmierer interessant. Wer Interesse hat, kann sich zum Beispiel im Internet reichlich Informationen besorgen. Oder er schreibt mir (bitte mit Rückporto) und bekommt dann auf Diskette eine vollständige, englische Dokumentation über mehr als 90 Seiten.