[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://pngquant.org/ pngquant] {en} ist ein in [wikipedia_en:C99:] von [https://kornel.ski/about Kornel Lesiński] {en} und anderen geschriebenes Kommandozeilen-Programm zum verlustbehafteten („[wikipedia_en:Lossy_compression:lossy]“) Komprimieren von [wikipedia:Portable_Network_Graphics:PNG]-Grafiken. Es steht unter der [http://www.gnu.org/licenses/gpl-3.0.html GPLv3]- (oder später) oder einer [https://supso.org/projects/pngquant kommerziellen] {en} 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 [wikipedia:Alphakanal:Alpha-Transparenz] zu wahren. = Installation = pngquant kann direkt aus den Quellen installiert werden.[1] {{{#!vorlage Paketinstallation pngquant, universe }}} = Bedienung = pngquant wird im Terminal[3] mit folgendem Befehl aufgerufen: {{{#!vorlage Befehl pngquant [OPTIONEN] DATEI }}} == Optionen == Das Programm kennt unter anderem die folgenden Optionen: {{{#!vorlage Tabelle 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 [:man:Manpage] zu entnehmen. == Beispiele == === Einfache Komprimierung === {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl find /home/user/Downloads/PNG-Dateien -iname "*.png" -exec pngquant --force --quality=60-80 --strip --verbose {} --output {} \; }}} = Links = == extern == * [https://pngquant.org/ Projektseite] {en} * [github:kornelski/pngquant:pngquant auf Github] * [https://computingforgeeks.com/compress-png-images-on-linux-command-line/ How to Compress PNG images on Linux Command Line (CLI)] {en} – Blogartikel (02/2019) * [https://guides.wp-bullet.com/batch-lossy-compress-png-with-pngquant-linux-command-line/ Batch Lossy Compress PNG with pngquant Linux Command Line] {en} – Blogartikel (04/2017) == intern == * [:Shell/Anwendungen:] * [:Grafik:] #tag: Grafik, Shell, Multimedia, Büro