Zum Inhalt springen

libpng

aus Wikipedia, der freien Enzyklopädie
libpng

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Entwickler Guy Eric Schalnat,
Andreas Dilger,
Glenn Randers-Pehrson et al.
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Betriebssystem plattformunabhängig
Programmier­sprache Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Kategorie Programmbibliothek
Lizenz zlib-/libpng-Lizenz (freie Software)
libpng.org

libpng (ehemals pnglib) ist eine weit verbreitete freie Programmbibliothek zur Verarbeitung des komprimierten Rastergrafik-Datenformates Portable Network Graphics (PNG).

Sie ist in der Programmiersprache C geschrieben und baut für die Deflate-Datenkompression auf den Funktionen der zlib-Bibliothek auf.

Funktionalität[Bearbeiten]

Die libpng ist plattformunabhängig und erweiterbar. Sie implementiert einen PNG-Codec (Kodierung und Dekodierung) mit Unterstützung für nahezu alle Merkmale des Formates. Neben den Pflicht-Blocktypen IHDR, IDAT, PLTE und IEND ist die Unterstützung der weiteren Standardblocktypen jeweils in speziellen Makros implementiert, die bei der Kompilierung ausgelassen werden können.<ref name="LinuxFoundation" /> Im Paket mit der eigentlichen Bibliothek werden auch die Hilfsprogramme libpng16-config, pngfix und png-fix-itxt geliefert.<ref name="BLFS" />

Bedeutung[Bearbeiten]

libpng ist die offizielle Referenzimplementierung des verbreiteten PNG-Formates. Sie wurde als Ergänzung zur Spezifikation des PNG-Formates hergestellt, um den Einsatz des Formates zu erleichtern. Dazu wird sie als freie Software auch im Quelltext unter den Bedingungen einer freizügigen Open-Source-Lizenz, der zlib-/libpng-Lizenz, zur Verfügung gestellt. Die Bibliothek wurde in zahlreiche Anwendungen integriert, sowohl direkt als auch in Frameworks oder sogar als zentrale Standard-Komponente in einigen Betriebssystemen. Durch die freizügige Lizenz findet sich darunter auch proprietäre Software.

Durch die Verwendung als Komponente von teils auch Internet-exponierter Software wie Webbrowsern waren Fehler im Code von libpng schon mehrmals auch für bekanntere Sicherheitsprobleme verantwortlich.

Geschichte[Bearbeiten]

Ursprünglicher Entwickler der libpng war Guy Eric Schalnat (von Group 42, Inc.), welcher die ersten Versionen bis einschließlich 0.88 (1.0 beta 2) vom 26. Januar 1996 herausgab. Während 1996 und 1997 übernahm Andreas Dilger die Entwicklung und produzierte die Versionen bis 0.96 (1.0 beta 6) vom 28. Mai 1997. Seit Januar 1998 (Version 0.97) wird die Entwicklung von Glenn Randers-Pehrson koordiniert, der auch der PNG-Entwicklergruppe angehört. Viele weitere waren als beitragende Autoren an der Entwicklung beteiligt.<ref name="Lizenz" />

Siehe auch[Bearbeiten]

  • libmng – Bibliothek zum PNG-Tochterformat MNG von denselben Entwicklern

Literatur[Bearbeiten]

Weblinks[Bearbeiten]

Quellen[Bearbeiten]

<references> <ref name="LinuxFoundation">Linux Foundation Wiki: Die Seite Vorlage:Webarchiv/styles.css hat keinen Inhalt.LibPng – Specification Overview (Memento des Vorlage:IconExternal vom 5. September 2014 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/wiki.linuxfoundation.org</ref> <ref name="BLFS">Beyond Linux From Scratch, Kapitel 10: Graphics and Font Libraries, Abschnitt libpng</ref> <ref name="Lizenz">libpng license</ref> </references>