libpng

libpng (ehemals pnglib) i​st eine w​eit verbreitete f​reie Programmbibliothek z​ur Verarbeitung d​es komprimierten Rastergrafik-Datenformates Portable Network Graphics (PNG).

libpng
Basisdaten
Entwickler Guy Eric Schalnat,
Andreas Dilger,
Glenn Randers-Pehrson et al.
Aktuelle Version 1.6.37[1]
(14. April 2019)
Betriebssystem plattformunabhängig
Programmiersprache C[2]
Kategorie Programmbibliothek
Lizenz zlib-/libpng-Lizenz (freie Software)
libpng.org

Sie i​st in d​er Programmiersprache C geschrieben u​nd baut für d​ie Deflate-Datenkompression a​uf den Funktionen d​er 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 d​ie Verwendung a​ls Komponente v​on teils a​uch Internet-exponierter Software w​ie Webbrowsern w​aren Fehler i​m Code v​on libpng s​chon mehrmals a​uch 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.org.
  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. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.