Portable Network Graphics (PNG)Das Portable Network Graphics (PNG) wurde entwickelt, um das kommerzielle GIF-Format zu verbessern und zu ersetzen. Daher ist PNG für kommerzielle Anwendungen vollständig frei einsetzbar. PNG unterstützt drei Modi:
Struktur eine PNG-DateiDie ersten 8 Bits sind immer: 137 80 78 71 12 10 26 10. Dieses bedeutet, dass die Daten ein PNG-Bild enthalten in Form eines Felds von Datensätzen (chunks), welches mit IHDR beginnt und mit IEND endet. Chunks beschreiben die Bildeigenschaften. Jedes Chunk besteht aus vier Teilen:
Kritische ChunksJede PNG-Datei besteht aus einem IHDR-, zumindest einem Datensatz IDAT- sowie ein IEND-Chunk. IHDR-ChunkDieses enthält die folgenden Daten:
PLTE-ChunkDieses Chunk enthält bis zu 256 Farb-Deskriptoren, wobei jeder Deskriptor 3 Bytes RGB-Farbe enthält. Die Anzahl der Deskriptoren wird durch die Länge des Chunkgs bestimmt: N=Größe des Chunks / 3. IDAT-ChunkDieses Chunk enthält die tatsächlich komprimierten Bilddaten. Um IDAT zu erzeugen, müssen die Bilddimensionen bekannt sein, die Bilder gefiltert und die Daten komprimiert. Die Daten können auf mehrere IDAT-Chunks verteilt werden, um die Wahrscheinlichkeit zu vergrößern, zerstörte Dateien zu restaurieren. IEND-ChunkDieses muss das letzte Chunk in einer PNG-Datei sein und wird benutzt, um das Ende der Datei anzuzeigen. Dieses Chunk enthält keine Daten. Ancillary-ChunksDieses Chunk (ancillary=untergeordnet) ist optional. Es kann von PNG-Dateilesern ignoriert werden und braucht von PNG-Dateischreibern nicht ausgegeben zu werden. Allerdings muss diese Option unterstützt werden, da sonst viele PNG-Bilder nicht korrekt gelesen werden können. Kritische und untergeordnete Chunks werden in der PNG-Spezifikation als Standardchunks bezeichnet. Es gibt darüber hinaus spezielle öffentliche Chunks, die seltener implementiert werden aber für einige Applikationen wichtig sind, sowie private Chunks, die Anwendungen für ihre eigenen Zwecke definieren können, wenn sie Daten speichern wollen, die nicht von anderen Anwendungen interpretiert werden sollen. Die folgenden Standard- und Spezialchunks werden von Version 1.0 der PNG-Spezifikation definiert:
KOMPRESSIONPNG verwendet die verlustfreie LZ77-Kompression, wie sie auch in zip, gzip und pkzip und ähnlichen Programmen benutzt wird. |