Login
Newsletter
Werbung

Di, 7. Mai 2013, 15:00

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.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Kommentare (Insgesamt: 3 || Alle anzeigen )
Re: Kraken.io (KerstinW, Mo, 13. Mai 2013)
Kraken.io (Dieselkopf, Di, 7. Mai 2013)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung