PNG-Bilder (automatisch) optimieren
pngnq
pngnq ist eine Adaption von pngquant, nutzt aber den NeuQuant-Algorithmus. Auch wenn die letzte Version von Mitte 2011 datiert, ist in manchen Paketverwaltung nur eine ältere Version als die Anfang März aktuelle 1.1 zu finden.
Daher lädt man sich den Quellcode einfach von der Webseite herunter und entpackt diesen:
$ tar -xzf pngnq-1.1.tar.gz $ cd pngnq-1.1
Wie bei pngquant benötigt man build-essential
, libpng12-dev
und
zlib1g-dev
. Mittels
$ ./configure $ make "LIBS=-lm -lz -lpng"
kann man das Programm dann übersetzen. Der Zusatz hinter make
ist notwendig, da im Makefile leider das Einbinden der libpng vergessen wurde.
Danach kann man mit
$ src/pngnq -Q f farbverlauf.png
ein oder mehrere Bilder optimieren. Gespeichert wird das Ergebnis per Standard als farbverlauf-nq8.png
dort, wo auch das Originalbild liegt. Der Bildfortsatz kann mit der Option -e
verändert werden. Die Option -Q f
ist wichtig, da nur so Floyd-Steinberg zum Einsatz kommt.
Die Ergebnisse sind etwas enttäuschend:
- Texteditor-Screenshot: von 131,4 kb auf 55,7 kb (57,51 %)
- Bodensee-Foto: von 905,4 kb auf 378,7 kb (58,17 %)
- Desktop mit Farbverlauf: von 625,8 kb auf 321,1 kb (48,69 %)
Die Dateien sind zum einen alle größer als bei den anderen Optimierungsprogrammen. Daneben ist aber auch die Qualität bei allen Bildern nicht so gut. Bei dem Bodensee-Bild weist vor allem der Himmel pixelige Flächen auf. Der Farbverlauf ist ganz gut geworden, aber das Ergebnis von pngquant ist besser. Und selbst bei dem Editor-Bild wird die Farbe der Vor- und Zurückpfeile stark verfremdet.
pngcrush
Ein weiteres Konsolenprogramm ist pngcrush. Ebenfalls noch in aktiver Entwicklung, ist derzeit (März 2013) die Version 1.7.51 aktuell.
Wer das Programm nicht aus der Paketverwaltung installieren will, lädt sich den Quellcode von der Webseite herunter und entpackt ihn:
$ tar -xzf pngcrush-1.7.51.tar.gz $ cd pngcrush-1.7.51
Voraussetzung zum Übersetzen sind wieder die Pakete build-essential
, libpng12-dev
und zlib1g-dev
. Ein simples make
übersetzt das Programm.
Wenn man sich die Hilfeseite mit der Option -h
anschaut, sieht man, dass dies das bisher umfangreichste Programm mit den meisten Optionen ist. Sicherlich ist es nicht schlecht, die Wahl zu haben, dummerweise muss man aber wissen, was man tut. Nutzt man nur die Standardoptionen
$ ./pngcrush -e "-pngcrush" farbverlauf.png
erhält man zwar qualitativ sehr hochwertige Bilder, die aber dafür auch nur minimal komprimiert wurden – wenn überhaupt:
- Texteditor-Screenshot: von 131,4 kb auf 115,3 kb (12,25 %)
- Bodensee-Foto: von 905,4 kb auf 903,0 kb (0,27 %)
- Desktop mit Farbverlauf: von 625,8 kb auf 898,7 kb (-43,61 %, das Bild ist größer geworden!)
OptiPNG
Das letzte Programm, das vorgestellt werden soll, ist OptiPNG. Es wird ebenfalls noch entwickelt und befindet sich in den meisten Paketverwaltungen. Die neueste Version 0.7.4 (März 2013) kann auf der Webseite heruntergeladen werden.
Nach dem Entpacken mittels
$ tar -xzf optipng-0.7.4.tar.gz $ cd optipng-0.7.4
benötigt man, wie bei allen anderen Programmen auch, build-essential
, libpng12-dev
und zlib1g-dev
. Übersetzt wird wieder mit
$ ./configure $ make
Auch OptiPNG bietet viele Optionen, die man erst versteht, wenn man sich genauer damit auseinandergesetzt hat. Als Standard ruft man das Programm über
$ src/optipng/optipng farbverlauf.png
auf, was aber zum einen das Originalbild überschreibt (sehr schlecht) und zum anderen das Foto und das Farbverlauf-Bild so gut wie nicht verkleinert.
Daher wurde für den Test die Option -o7
gewählt. Diese testet (laut Hilfetext) 240 verschiedenen Variationen der Komprimierung durch und nimmt dann die »Beste«. Aber auch hier ist die Komprimierung so gut wie nicht vorhanden:
- Texteditor-Screenshot: von 131,4 kb auf 114,8 kb (12,63 %)
- Bodensee-Foto: von 905,4 kb auf 899,5 kb (0,65 %)
- Desktop mit Farbverlauf: von 625,8 kb auf 603,4 kb (3,58 %)
Fazit
Je nach Anwendungsfall gibt es verschiedene Programme, die mehr oder weniger geeignet sind. Wenn man sowieso GIMP offen hat, kann man dessen Indizierung nutzen, wenn man den möglicherweise damit einhergehenden Qualitätsverlust verschmerzen kann.
Möchte man die Optimierung komfortabel mit der Maus durchführen, ist die Webseite TinyPNG die beste Wahl.
Für die Konsole gibt es zahlreiche Optimierungsprogramme, aber vor allem die scheinbar mächtigsten sind unter Umständen nicht so leicht zu bedienen, sodass die Ergebnisse entweder von der Qualität (pngnq verfälscht Farben) oder von der Dateigröße (pngcrush vergrößert Bilder) nicht überzeugen können. Der Gewinner heißt hier ganz klar pngquant.
Auch insgesamt über alle Optimierungsprogramme hinweg zeigt pngquant die besten Ergebnisse. Mit Hilfe eines kleinen Skriptes kann man die Optimierung sogar direkt in den Dateimanager einbauen, wenn man will (siehe »Bilder verkleinern und versenden«, freiesMagazin 02/2013).
Autoreninformation
Dominik Wagenführ (Webseite) übernimmt bei freiesMagazin die Optimierung der Bilder. Dies geschah immer mit GIMP. Aufgrund der nicht optimalen Ergebnisse wurde nach einer Alternative gesucht, die mit pngquant gefunden wurde.
Dieser Artikel ist in freiesMagazin 04/2013 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.