Zum Inhalt springen

Portable Network Graphics

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Juni 2005 um 22:15 Uhr durch Harmonica (Diskussion | Beiträge) (Verwandte Formate: doppelte Verlinkung entfernt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

PNG /pɪŋ/ steht für Portable Network Graphics und ist ein Grafikformat. Es wurde als freier Ersatz für das ältere proprietäre Format GIF entworfen und ist weniger komplex als TIFF. Die Daten werden verlustfrei komprimiert abgespeichert (im Gegensatz zum verlustbehafteten JPEG-Dateiformat).


Eigenschaften

Das PNG-Format hat keine Patentbeschränkungen, wie dies bei GIF bis 2004 durch Verwendung des LZW-Algorithmus der Fall war, und kann daher frei und kostenlos von jedem gelesen und geschrieben werden. Es ist ein universelles, vom World Wide Web Consortium anerkanntes Format und wird von modernen Web-Browsern unterstützt.

PNG hat – mit Ausnahme von Animationen und einigen nur selten genutzten Eigenschaften – alle Möglichkeiten, die auch GIF kennt. Dies macht es zu einem sehr zweckmäßigen Format. Hinzu kommen weitere Merkmale:

Wie auch GIF kann PNG Pixel aus einer Farbpalette mit bis zu 256 Einträgen verarbeiten. Darüber hinaus ist die Speicherung von Graustufenbildern mit 1, 2, 4, 8 oder 16 Bit und Farbbildern (RGB) mit 8 oder 16 Bit pro Kanal (also 24 beziehungsweise 48 Bit pro Pixel) möglich.

PNG-Dateien können Transparenzinformationen enthalten, entweder in Form eines Alphakanals oder für jede Farbe der Farbpalette. Ein Alphakanal ist eine zusätzliche Information, die für jeden Pixel angibt, wieviel vom Hintergrund des Bildes durchscheinen soll. PNG unterstützt Alphakanäle von 8 oder 16 Bit, was 256 beziehungsweise 65536 Abstufungen der Transparenzstärke entspricht. Bei GIF ist nur möglich, einen einzigen der Paletteneinträge als vollständig transparent zu deklarieren. Das PNG-Format erlaubt somit, unabhängig vom Hintergrund die Kanten von Text und Bildern zu glätten. Man kann echte Schlagschatten verwenden, die im Hintergrund ausblenden oder Bilder erzeugen, die beliebig geformt sind - wenn das Programm zur Anzeige der Bilder PNG-fähig ist.

Insbesondere der weit verbreitete Internet Explorer für Windows hat Probleme mit der Darstellung von PNG-Dateien, vor allem bei Bildern mit Alphakanal. Die neuesten Versionen der Browser Mozilla/Firefox, Opera und Internet Explorer für Macintosh unterstützen PNG weitgehend fehlerfrei. Es gibt allerdings Workarounds für die fehlerhaften Browser. Microsoft hat inzwischen angekündigt, dass die geplante Version 7 des Internet Explorers PNG-Grafiken komplett unterstützen soll.

Obwohl die Komprimierungsmethode bei PNG in der Regel deutlich kleinere Dateien erzeugt als bei GIF, speichern viele Programme PNG-Dateien nicht optimal ab, was zu unnötig großen Dateien führt. Beispiele für Programme, die PNG-Dateien weiter verkleinern können, sind OptiPNG, PNGOUT und PNGCrush.

1995 wurde mit der Entwicklung begonnen und es wurde im März 1997 als RFC 2083 veröffentlicht. Im November 2003 hat das W3C das Dateiformat PNG als W3C-Empfehlung verabschiedet. Es wird damit auch gleichzeitig zum ISO-Standard ISO/IEC 15948:2003 erhoben, der nunmehr die neueste Version beschreibt. PNG hat den MIME-Typ image/png.

Technische Details

Vorfilter

Um die Kompression der Bilddaten zu verbessern, unterstützt das PNG-Format verschiedene so genannte Vorfilter, die auf die Bilddaten angewendet werden, bevor die eigentliche Komprimierung stattfindet.

In vielen Bildern unterscheiden sich benachbarte Pixel nur wenig voneinander. Das bedeutet, dass die Differenzwerte dieser Pixel vom Betrag her recht klein sind. Werden nun statt der originalen Pixeldaten die Differenzwerte zu den vorangegangenen Pixeln verarbeitet, treten oft Folgen gleicher Werte auf; große Änderungen kommen nur relativ selten vor (etwa an Objektkanten). Dies begünstigt die Komprimierbarkeit der Daten durch die anschließende Komprimierung und ist einer der Gründe für die geringe Größe von PNG-Dateien.

PNG definiert in der derzeitigen Version fünf verschiedene Filtertypen:

Nummer Name Beschreibung
0 None Keine Vorfilterung. Es wird auf den originalen Pixeldaten gearbeitet
1 Sub Es werden die Differenzen zu dem jeweils links benachbarten Pixel verarbeitet
2 Up Es werden die Differenzen zu dem jeweils darüber liegenden Pixel verarbeitet
3 Average Es wird die Differenz zu dem Mittelwert aus dem darüber liegenden und dem links benachbarten Pixel gebildet
4 Paeth Es wird aus dem links benachbarten, dem darüber liegendem und dem schräg links-oben benachbarten Pixel ein so genannter Paeth-Predictor-Wert berechnet, welche den Pixel für die Differenzbildung bestimmt

Die verschiedenen Filter werden unabhängig voneinander auf jede Bildzeile angewandt; oft wählt das Anwendungsprogramm automatisch eine Filterkombination aus. In vielen Fällen bietet der Paeth-Predictor die besten Ergebnisse. Der 4. Filtertyp wurde nach seinem Erfinder Alan W. Paeth benannt.

Umgekehrt werden nach der Dekomprimierung der Daten umgekehrte Versionen der Filter angewandt, um die eigentlichen Bilddaten wiederherzustellen.

Komprimierung

Nach dem Vorfiltern (siehe Filtertypen) werden die Daten mit dem verlustlosen Deflate-Algorithmus komprimiert. Dieses Verfahren wurde für das ZIP-Archivformat entwickelt und findet auch im gz-Format des Archivprogramms gzip und im Bildformat TIFF Verwendung. Bislang ist Deflate die einzige unterstützte Methode. Es ist aber absichtlich Raum für Erweiterungen gelassen worden, um in zukünftigen PNG-Versionen auch andere, effizientere oder schnellere Algorithmen zu unterstützen. Um Abwärtskompatibilität zu existierenden PNG-fähigen Programmen zu gewährleisten, ist derzeit eine Aufnahme anderer Verfahren in den Standard jedoch nicht geplant.

Verwandte Formate

MNG (Multiple-image Network Graphics) speichert Animationen.

JNG (JPEG Network Graphics), ein Unterformat von MNG, unterstützt den verlustbehafteten Teil von JPEG als Kompressionsverfahren.

Vorteile

  • PNG ist lizenzkostenfrei.
  • PNG komprimiert verlustfrei, und dabei meist kompakter als vergleichbare Formate.
  • PNG unterstützt wie das JPEG-Format Echtfarben.
  • PNG unterstützt "echte" Transparenz (Alpha-Transparenz).
  • PNG unterstützt Farbkorrekturmechanismen, die sicherstellen, dass ein Bild auf verschiedenen Systemen annähernd gleich aussieht.
  • PNG unterliegt einem festen Standard und ist erweiterbar, sodass theoretisch jedes Programm bestimmte Mindestanforderungen erfüllen muss. Außerdem ermöglicht PNG sowohl Aufwärts- als auch Abwärtskompatibilität, was Inkompatibilitäten zwischen verschiedenen Versionen reduziert.
  • PNG ermöglicht außerdem das Abspeichern zusätzlicher Information in der Grafikdatei, zum Beispiel Autoren- und Urheberhinweise.
  • Es ist (durch integrierte Prüfsummen) möglich, Fehler in der Datei frühzeitig zu erkennen.
  • PNG ist streamable, zur Interpretation des Dateiinhalts ist also kein wahlfreier Zugriff wie etwa bei vielen TIFF-Dateien notwendig.
  • PNG verfügt über ein optionales 7-Pass-Interlacing nach Adam M. Costello ("Adam7"), also den allmählichen Bildaufbau bei der Übertragung über langsame Datenleitungen wie etwa im Internet. Dabei treten weniger Bildverzerrungen auf als bei GIF. Schon bei sehr geringer Übertragung ist bereits eine relativ brauchbare Darstellung möglich.

Nachteile

  • PNG bietet keine Möglichkeit zur Animation wie das GIF-Format. Hierzu wurde das MNG-Format geschaffen, welches jedoch bislang keine nennenswerte Verbreitung erreicht hat.
  • Einige Browser unterstützen PNG nur teilweise beziehungsweise zeigen insbesondere PNG-Dateien mit Alphakanalinformation fehlerhaft an. Auch der verbreitete Internet Explorer für Windows wird voraussichtlich erst ab der im Sommer 2005 erscheinenden Version 7 den vollen Alphakanal unterstützen. Wie bei GIF sind jedoch auch hier Ja-Nein-Transparenzen möglich, sodass im Vergleich zu GIF in dieser Hinsicht auch bisher kein echter Nachteil entstand.
  • PNG ermöglicht nicht das einfache Laden von Bildteilen. Wer nur einen Ausschnitt des Bildes laden möchte, muss alle Bildzeilen davor mitladen. Im Falle von PNG-Dateien, die nicht sequentiell, sondern interlaced gespeichert wurden, muss sogar noch mehr geladen werden.
  • Die Kompressionsraten verlustbehafteter Algorithmen, wie sie unter anderem bei JPEG verwendet werden, erreicht der verlustfreie Algorithmus von PNG bei bestimmten Bildarten wie Fotos naturgemäß nicht. Auch im Vergleich zu auf bestimmte Klassen von Bilddaten spezialisierten Algorithmen, etwa nur für gescannte Dokumente, kann PNG meist nicht mithalten.
  • Die Kompression benötigt vergleichweise mehr Rechenzeit als ältere Verfahren wie etwa Lauflängenkodierung oder LZW.
  • PNG unterstützt zwar eingebettete Metainformationen, die aber weder dem EXIF- noch dem IPTC-Standard entsprechen.

Literatur

  • Jörg Stroisch, Thorsten Olscha: Webgrafik-Optimierung Markt + Technik, Mchn., 2003 2. Aufl. ISBN 3827269008