ubuntuusers.de

pngquant

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png

pngquant 🇬🇧 ist ein in C99 von Kornel Lesiński 🇬🇧 und anderen geschriebenes Kommandozeilen-Programm zum verlustbehafteten („lossy“) Komprimieren von PNG-Grafiken. Es steht unter der GPLv3- (oder später) oder einer kommerziellen 🇬🇧 Lizenz. Mit dem Programm ist es häufig möglich, die Größe von PNG-Dateien um 60% bis 80% zu reduzieren und dabei gleichzeitig die volle Alpha-Transparenz zu wahren.

Installation

pngquant kann direkt aus den Quellen installiert werden.[1]

  • pngquant (universe)

Paketliste zum Kopieren:

sudo apt-get install pngquant 

Oder mit apturl die Pakete installieren. Link: apt://pngquant

Bedienung

pngquant wird im Terminal[3] mit folgendem Befehl aufgerufen:

pngquant [OPTIONEN] DATEI 

Optionen

Das Programm kennt unter anderem die folgenden Optionen:

Optionen von pngquant
Option Beschreibung
--ext neu.png Die Option ermöglicht es, einen eigenen Namensanhang für die komprimierte Output-Datei anzugeben. Standardmäßig werden entweder -or8.png oder -fs8.png verwendet.
--quality min-max Mit den angegebenen Werten wird pngquant instruiert, die geringstmögliche Farbzahl zu wählen, um mindestens die angegebene Outputqualität zu erzielen. Sollte diese Qualität nicht erreicht werden, wird das Ergebnis nicht gespeichert und pngquant wird kommentarlos beendet. Die Qualitätswerte reichen von "0" (schlechteste Qualität) bis "100" (perfekt).
--speed N Angabe der Geschwindigkeit ("N") von 1 (brute-force) bis 11 (am schnellsten). Die Voreinstellung ist 3. Die Geschwindigkeit beeinflusst die Qualität der Ausgabe: Eine Geschwindigkeit von 10 bewirkt Qualitätseinbußen in Höhe von 5%, ist aber achtmal schneller als der voreingestellte Wert.
--strip Entfernung der Metadaten

Weitere Optionen sind der Manpage zu entnehmen.

Beispiele

Einfache Komprimierung

pngquant --quality=60-80 datei1.png 

Ergebnis (die Dateigrößenüberprüfung erfolgt mit du und ist nicht Teil des Programms!):

~: du -sh datei1.png                  
456K	datei1.png
~: pngquant --quality=60-80 datei1.png
~: du -sh datei1-fs8.png
124K	datei1-fs8.png

Komprimierung mit weiteren Optionen

Im folgenden Beispiel werden die Metadaten der Grafik entfernt (--strip), Angaben zur Komprimierung ausgegeben (--verbose) sowie ein eigener Name der Output-Datei festgelegt.

pngquant --force --quality=60-80 --strip --verbose eingabedatei.png --output ausgabedatei.png 

Ergebnis:

~: du -sh eingabedatei.png
324K    eingabedatei.png
~: pngquant --force --quality=60-80 --strip --verbose eingabedatei.png --output ausgabedatei.png
eingabedatei.png:
  read 321KB file
  made histogram...30674 colors found
  selecting colors...8%
  selecting colors...16%
  selecting colors...66%
  selecting colors...75%
  selecting colors...100%
  moving colormap towards local minimum
  eliminated opaque tRNS-chunk entries...0 entries transparent
  mapped image to new colors...MSE=4.758 (Q=84)
  writing 93-color image as ausgabedatei.png
Quantized 1 image.
~: du -sh ausgabedatei.png
124K    ausgabedatei.png

Batch-Komprimierung

Es ist mit pngquant auch möglich, mehrere Komprimierungen auf einmal zu erledigen. Im folgenden Beispiel werden alle PNG-Dateien im aktuellen Ordner komprimiert.

pngquant --force --quality=60-80 --strip --verbose *.png  

Mit Hilfe von find ist es ebenfalls möglich, mehrere Komprimierungen auf einmal zu erledigen. Im folgenden Beispiel werden alle PNG-Dateien im Ordner /home/user/Downloads/PNG-Dateien und, rekursiv, in seinen Unterordnern komprimiert.

find /home/user/Downloads/PNG-Dateien -iname "*.png" -exec pngquant --force --quality=60-80 --strip --verbose {} \;  

Mit Hilfe der folgenden Befehlskombination werden ebenfalls alle PNG-Dateien in dem angegebenen Ordner und seinen Unterordnern komprimiert, die Eingabedateien werden in diesem Fall aber durch die komprimierten Versionen überschrieben.

find /home/user/Downloads/PNG-Dateien -iname "*.png" -exec pngquant --force --quality=60-80 --strip --verbose {} --output {} \;  

extern

intern

Diese Revision wurde am 26. Januar 2020 13:05 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, Grafik, Büro, Multimedia