libpng
libpng (ehemals pnglib) ist eine weit verbreitete freie Programmbibliothek zur Verarbeitung des komprimierten Rastergrafik-Datenformates Portable Network Graphics (PNG).
libpng | |
---|---|
Basisdaten | |
Entwickler | Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson et al. |
Aktuelle Version | 1.6.42[1] (29. Januar 2024) |
Betriebssystem | plattformunabhängig |
Programmiersprache | C[2] |
Kategorie | Programmbibliothek |
Lizenz | zlib-/libpng-Lizenz (freie Software) |
libpng.org |
Sie ist in der Programmiersprache C geschrieben und baut für die Deflate-Datenkompression auf den Funktionen der zlib-Bibliothek auf.
Funktionalität
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.[3] Im Paket mit der eigentlichen Bibliothek werden auch die Hilfsprogramme libpng16-config, pngfix und png-fix-itxt geliefert.[4]
Bedeutung
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
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.[5]
Siehe auch
- libmng – Bibliothek zum PNG-Tochterformat MNG von denselben Entwicklern
Literatur
- Greg Roelofs: Part III: Programming with PNG. In: PNG: The Definitive Guide. O’Reilly, 1999, ISBN 1-56592-542-4 (englisch, libpng.org).
Weblinks
- Offizielle Webpräsenz
- Benutzerhandbuch (englisch)
- Entwicklungsseite
- The Lab Book Pages: Creating PNGs with libPNG (englisch)
Quellen
- LIBPNG: PNG reference library - Browse /libpng16/1.6.42 at SourceForge.net.
- The libpng Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
- Linux Foundation Wiki: LibPng – Specification Overview (Memento des 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.
- Beyond Linux From Scratch, Kapitel 10: Graphics and Font Libraries, Abschnitt libpng
- libpng license