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).

Quellen

  1. LIBPNG: PNG reference library - Browse /libpng16/1.6.42 at SourceForge.net.
  2. The libpng Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
  3. Linux Foundation Wiki: LibPng – Specification Overview (Memento des Originals 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
  4. Beyond Linux From Scratch, Kapitel 10: Graphics and Font Libraries, Abschnitt libpng
  5. libpng license
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.