pngquant
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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)
Befehl zum Installieren der Pakete:
sudo apt-get install pngquant
Oder mit apturl 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 {} \;
Links¶
extern¶
Projektseite 🇬🇧
How to Compress PNG images on Linux Command Line (CLI) 🇬🇧 – Blogartikel (02/2019)
Batch Lossy Compress PNG with pngquant Linux Command Line 🇬🇧 – Blogartikel (04/2017)
intern¶