Wikipedia · einfach zusammengefasst · Stand
Portable Network Graphics
Die Kompression ist verlustfrei und dabei meist kompakter als vergleichbare Formate. · Unterstützung von Alpha-Transparenz (bis zu 16 Bit, also 65.536 Stufen; …
Inhalt6 Abschnitte
Grundidee und Einsatz
Portable Network Graphics (PNG) ist ein Grafikformat für Rastergrafiken, also Bilder aus einzelnen Pixeln, mit verlustfreier Datenkompression. Verlustfrei bedeutet, dass beim Speichern und Wiederöffnen keine Bildinformationen verloren gehen. Die Dateiendung ist .png, der MIME-Type image/png. PNG ist vom World Wide Web Consortium (W3C) anerkannt und das meistverwendete verlustfreie Grafikformat im Internet.
PNG wurde als freier Ersatz für das ältere Graphics Interchange Format (GIF) entwickelt, das lange durch Patentforderungen belastet war. Es ist weniger komplex als TIFF und unterstützt verschiedene Farbtiefen sowie Transparenz durch einen Alphakanal. Besonders geeignet ist PNG für Grafiken, die sich verlustfrei stark komprimieren lassen, etwa Buttons, Icons und Logos. Für Fotos ist PNG meist deutlich größer als JPEG; es wird dort vor allem genutzt, wenn verlustfreie Speicherung wichtiger ist als eine kleine Datei.
Entwicklung und Standardisierung
Die Entwicklung begann Ende 1994. Auslöser waren Lizenzforderungen der Firma Unisys für den von GIF verwendeten Lempel-Ziv-Welch-Algorithmus (LZW). Am 4. Januar 1995 legte Thomas Boutell einen frühen Entwurf vor. Die Spezifikation PNG 1.0 von Thomas Boutell und Tom Lane wurde am 1. Oktober 1996 offizielle Empfehlung des W3C. Am 14. Oktober 1996 erhielt PNG von der IANA den MIME-Typ image/png, am 15. Januar 1997 wurde es als IETF RFC 2083 verabschiedet.
Weitere wichtige Stationen waren Version 1.1 vom 31. Dezember 1998 und Version 1.2 vom 11. August 1999. Diese wurde am 10. November 2003 zum ISO-Standard ISO/IEC 15948:2003 und zugleich zur zweiten Ausgabe der W3C-Empfehlung. Seit dem 14. September 2021 ist die PNG Development Group vom W3C mit Pflege und Weiterentwicklung beauftragt. Die dritte Ausgabe der Spezifikation ergänzt ordnungsgemäße Unterstützung für APNG, High Dynamic Range (HDR) und Exif-Daten; sie erschien am 25. Oktober 2022 als erster öffentlicher Arbeitsentwurf und am 24. Juni 2025 als W3C-Empfehlung.
Farben, Transparenz und Aufbau
PNG unterstützt mehrere Farbmodi: Graustufen, Vollfarbe, Farbpaletten sowie Graustufen und Farbe jeweils mit Alphakanal. Bei Graustufenbildern sind 1, 2, 4, 8 oder 16 Bit pro Pixel möglich. Bei Farbbildern gibt es 8 Bit (RGB8) oder 16 Bit (RGB16) pro Farbkanal. Im Farbpalettenmodus können bis zu 256 indizierte Farben gespeichert werden; diese Farben sind aus dem vollen RGB8-Spektrum frei wählbar.
Transparenz kann auf verschiedene Arten gespeichert werden: als Alphakanal, als einzelne transparente Farbe oder als Transparenzpalette zu einer vorhandenen Farbpalette. Ein Alphakanal enthält für jedes Pixel einen Deckkraftwert. Bei 8 Bit reicht dieser von 0 bis 255, bei 16 Bit bis 65535. Der Wert 0 bedeutet vollständig durchsichtig, der Maximalwert vollständige Deckung. Dadurch können etwa geglättete Text- und Bildkanten oder echte Schlagschatten unabhängig vom Hintergrund dargestellt werden.
PNG-Dateien bestehen aus Datenblöcken, sogenannten Chunks, die durch vier Buchstaben gekennzeichnet sind, zum Beispiel tEXt für Textinformationen. Pflicht-Blocktypen sind IHDR, IDAT, PLTE und IEND; daneben gibt es standardisierte optionale Blöcke für Zusatzinformationen wie Farbkorrektur. Anwendungen können auch private Datenblöcke definieren, etwa für eigene Zusatzdaten.
Technische Speicherung und Kompression
Eine PNG-Datei beginnt immer mit einer acht Byte langen Signatur, der sogenannten magischen Zahl: 8950.4e47.0d0a.1a0a in hexadezimaler Schreibweise beziehungsweise \x89PNG\r\n\x1a\n in ASCII-C-Notation. Sie hilft Programmen, das Dateiformat zuverlässig zu erkennen.
Die Kompression läuft verlustfrei und besteht aus mehreren Schritten. Zuerst können Vorfilter verwendet werden, die benachbarte Pixelwerte in Differenzen umwandeln. Das nennt man Dekorrelation oder Delta-Kodierung: Statt absolute Farbwerte zu speichern, werden Unterschiede zu Nachbarpixeln beschrieben. PNG kennt fünf Filtertypen: None, Sub, Up, Average und Paeth. Der Paeth-Filter nutzt links, oben und linksoben benachbarte Pixel, um einen passenden Vorhersagewert zu bestimmen. Je gleichmäßiger ein Bild ist, desto wirksamer können solche Filter sein.
Danach nutzt PNG das Deflate-Verfahren. Es kombiniert Substitutionskompression nach dem LZSS-Algorithmus mit Huffman-Entropiekodierung. Dabei werden wiederkehrende Muster durch Rückverweise ersetzt und häufige Werte mit kürzeren Codes gespeichert. Viele Programme verwenden dafür die freie Bibliothek zlib, die ursprünglich extra für PNG geschaffen wurde. Üblicherweise kann Deflate in Stufen von 0 (keine Kompression) bis 9 (beste Kompression) eingestellt werden. Bisher ist Deflate die einzige unterstützte Methode.
Vorteile, Grenzen und Vergleich mit GIF
Zu den Vorteilen von PNG gehören verlustfreie und meist kompakte Kompression, Alpha-Transparenz bis 16 Bit beziehungsweise 65.536 Stufen, Farb- und Helligkeitskorrekturmechanismen, ein fester und erweiterbarer Standard, Aufwärts- und Abwärtskompatibilität, integrierte Prüfsummen zur Fehlererkennung und Streambarkeit. Optional gibt es Adam7-Interlacing mit 7 Durchläufen, bei dem ein Bild während langsamer Übertragung allmählich sichtbar wird. PNG wird von allen grafischen Webbrowsern unterstützt.
Grenzen hat PNG vor allem bei Animation, Druckfarbräumen und bestimmten Bildarten. Die offizielle Animationslösung war MNG, das von keinem Browser unterstützt wird; für animierte PNGs hat sich APNG durchgesetzt. PNG unterstützt außerdem kein CMYK-Farbmodell und ist deshalb kein vollständiger TIFF-Ersatz. Metainformationen werden unterstützt, entsprechen aber nicht Exif oder IPTC. Bildausschnitte lassen sich nicht einfach laden, weil vorherige Bildzeilen mitgeladen werden müssen. Bei Fotos erreicht PNG wegen seiner verlustfreien Arbeitsweise nicht die Kompressionsraten verlustbehafteter Verfahren wie JPEG.
Im Vergleich zu GIF bietet PNG zusätzlich Vollfarb- und Graustufenbilder mit bis zu 16 Bit pro Farbkanal. GIF kann nur einen Paletteneintrag als vollständig transparent markieren, während PNG fein abgestufte Alpha-Transparenz ermöglicht. PNG komprimiert meistens besser als GIF, unter anderem wegen der Vorfilter. Dafür ist PNG komplexer. Bei Adam7-Interlacing treten weniger Bildverzerrungen auf als beim progressiven Aufbau von GIF. PNG war von Anfang an frei von den Patentbeschränkungen, die GIF bis 2004 beziehungsweise teilweise bis Oktober 2006 betrafen.
Beispiel, Varianten und Software
Ein Beispielbild im Artikel hat 800 × 600 Pixel, 32 Bit Farbtiefe (24 Bit Farbe + 8 Bit Alpha), nutzt RGBA im RGB-Farbraum und ist 224.566 Byte groß. Ohne Kompression würde es bei 32 Bit pro Pixel 800 × 600 × 4 Byte = 1.920.000 Byte benötigen. Daraus ergibt sich eine Kompressionsrate von 1.920.000 / 224.566 = 8,55.
Verwandte Formate sind APNG, MNG, JNG und PNG+. APNG unterstützt Animationen und ist zu PNG abwärtskompatibel, sodass reine PNG-Dekoder nur das erste Bild anzeigen. MNG speichert Animationen, JNG unterstützt als Unterformat von MNG den verlustbehafteten Teil von JPEG, und PNG+ ist ein inkompatibles Microsoft-Format aus Picture It! mit Ebenen und Mehrseiten-Layouts. Weder MNG, JNG noch PNG+ sind W3C-Empfehlungen; APNG wurde mit Version 3.0 der Spezifikation hinzugefügt.
Die offizielle Referenzimplementierung ist die freie Programmbibliothek libpng. PNGOUT und ZopfliPNG sind bekannte Kodierer für besonders kompakte PNG-Dateien. Programme wie pngcrush und OptiPNG können PNG-Dateien verlustfrei neu komprimieren und dadurch oft deutlich verkleinern. Alle modernen Webbrowser unterstützen PNG; wichtige Bildbearbeitungsprogramme können PNG üblicherweise lesen und schreiben.