Pngquant ist ein kostenloser, quelloffener und plattformübergreifender verlustbehafteter PNG-Kompressor für die Befehlszeile. Es basiert auf einer portablen libimagequant Bibliothek und ist in C99 geschrieben . Es reduziert die Dateigröße erheblich, indem es das PNG-Bild in ein effizienteres 8-Bit konvertiert PNG-Format und bewahrt volle Alpha-Transparenz . Wie Sie vielleicht bereits wissen, sind 8-Bit-PNG-Dateien oft 60-80 % kleiner als 24/32-Bit-PNG-Dateien. Die mit Pngquant komprimierten Bilder sind mit allen Webbrowsern und Betriebssystemen voll kompatibel. Pngquant kann ein oder mehrere Bilder gleichzeitig komprimieren. Lassen Sie uns in dieser Anleitung sehen, wie Pngquant installiert und PNG-Bilder unter Linux mit Pngquant komprimiert werden.
Funktionen
Pngquant hat die folgenden Funktionen.
- Unterstützung für die Stapelkonvertierung mehrerer PNG-Dateien.
- Hochwertige Palettengenerierung.
- Es verwendet den Median Cut-Quantisierungsalgorithmus, um Bilder zu optimieren.
- Kann leicht in Shell-Skripte, GUIs und serverseitige Software integriert werden.
- Bilder in gewünschter Qualität konvertieren und Bilder überspringen, die nicht in gewünschter Qualität konvertiert werden können.
- Multicore-Unterstützung und Intel SSE-Optimierungen.
Pngquant unter Linux installieren
Pngquant kann auf viele Arten installiert werden.
Installieren Sie Pngquant aus den Repositories der Distribution
Pngquant ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar.
Unter Arch Linux und seinen Varianten ist Pngquant in [Community] verfügbar Repository. Aktivieren Sie das Community-Repository und installieren Sie es mit Pacman wie unten.
$ sudo pacman -S pngquant
Unter Debian, Ubuntu, Linux Mint:
$ sudo apt install pngquant
Auf Ubuntu-Systemen müssen Sie [Universe] aktivieren -Repository, um Pngquant zu installieren.
Gehen Sie wie folgt vor, um das Universe-Repository zu aktivieren:
$ sudo add-apt-repository universe
Auf Fedora:
$ sudo dnf install pngquant
Unter openSUSE:
$ sudo zypper install pngquant
Unter CentOS:
$ sudo yum install epel-release
$ sudo yum install pngquant
Überprüfen Sie die installierte Pngquant-Version:
$ pngquant -V 2.5.0 (June 2015)
Die in den Standard-Repositories verfügbare Version von Pngquant ist möglicherweise veraltet. Wenn Sie die neueste Version möchten, kompilieren und installieren Sie sie manuell aus dem Quellcode wie unten.
Pngquant von der Quelle installieren
Installieren Sie zunächst die erforderlichen Abhängigkeiten.
Unter Debian, Ubuntu:
$ sudo apt install git gcc cmake libpng-dev pkg-config
Unter CentOS, Fedora:
$ sudo yum install git libpng-devel gcc cmake
Als nächstes klonen Sie mit git die neueste Version von Pngquant:
$ git clone --recursive https://github.com/kornelski/pngquant.git
Der obige Befehl lädt den Inhalt des Pngquant-GitHub-Repositorys herunter und speichert ihn in einem Ordner namens „pngquant“ in Ihrem aktuellen Arbeitsverzeichnis.
Wechseln Sie in das "pngquant-Verzeichnis:
$ cd pngquant
Führen Sie abschließend die folgenden Befehle aus, um Pngquant zu kompilieren und zu installieren:
$ make
$ sudo make install
Pngquant wird in /usr/local/bin installiert Standort standardmäßig. Wenn Sie es in einem anderen Verzeichnis installieren möchten, führen Sie Folgendes aus:
$ ./configure --prefix=dir && make
Ersetzen Sie "dir" durch Ihren Pfad. Sie müssen diesen Befehl zuerst ausführen und dann den Befehl „sudo make install“ ausführen.
Prüfen Sie die Pngquant-Version:
$ pngquant -V 2.12.5 (July 2019)
Sehen? Es ist die neueste Version.
Pngquant mit Cargo installieren
Pngquant kann auch mit Cargo installiert werden Paket-Manager. Installieren Sie zuerst Rust wie im folgenden Link beschrieben.
- Installieren Sie die Programmiersprache Rust unter Linux
git klonen Sie die neueste Version von Pngquant:
$ git clone --recursive https://github.com/kornelski/pngquant.git
Erstellen und installieren Sie schließlich Pngquant mit Cargo wie unten.
$ cd pngquant
$ sudo cargo build --release
Informationen zu anderen Installationsmethoden finden Sie auf der offiziellen Installationsseite von Pngquant .
PNG-Bilder unter Linux mit Pngquant komprimieren
Die Verwendung von Pngquant ist trivial und erfordert keine besonderen Fähigkeiten, um es zu verwenden.
Ich habe eine PNG-Bilddatei mit dem Namen "ostechnix.png" in meinem aktuellen Verzeichnis. Lassen Sie mich Ihnen seine Größe zeigen.
$ du -sh ostechnix.png 152K ostechnix.png
Wie Sie sehen können, beträgt die Bildgröße 152 KB .
Komprimiere ein PNG-Bild
Um ein PNG-Bild mit Pngquant zu komprimieren, geben Sie einfach seinen Pfad wie folgt an:
$ pngquant ostechnix.png
Der obige Befehl komprimiert die Datei ostechnix.png und speichert sie als neue Datei mit dem Namen "ostechnix-fs8.png" . Standardmäßig verwendet Pngquant den gleichen Ausgabedateinamen wie den Eingabedateinamen mit dem Suffix -or8.png oder -fs8.png Am Ende. Das bedeutet, dass die Quelldatei nicht überschrieben wird. Wenn Sie mit der Komprimierungsrate nicht zufrieden sind, löschen Sie einfach die komprimierte Datei und behalten Sie die Originaldatei.
Lassen Sie uns noch einmal die Größe der komprimierten Bilddatei überprüfen:
$ du -sh ostechnix-fs8.png 48K ostechnix-fs8.png
Komprimieren Sie PNG-Bilder mit Pngquant
Sehen? Pngquant hat die 152 KB reduziert Bildgröße auf nur 48k . Es ist in der Tat eine gute Arbeit. Öffnen Sie das Bild mit einem beliebigen Bildbetrachter und vergleichen Sie sie. Sie werden keinen großen Qualitätsunterschied zwischen dem Original und dem komprimierten Bild feststellen. Beide Bilder sehen fast gleich aus!
Statusmeldung beim Komprimieren anzeigen
Standardmäßig zeigt Pngquant beim Komprimieren von Bildern nicht an, was hinter den Kulissen vor sich geht. Wenn Sie die Statusmeldung anzeigen möchten, verwenden Sie diesen Befehl:
$ pngquant ostechnix.png --verbose ostechnix.png: conserving memory read 152KB file corrected image from gamma 2.2 to sRGB gamma made histogram...1854 colors found selecting colors...4% selecting colors...25% selecting colors...28% selecting colors...49% selecting colors...69% selecting colors...90% selecting colors...100% moving colormap towards local minimum eliminated opaque tRNS-chunk entries...61 entries transparent mapped image to new colors...MSE=0.055 (Q=99) writing 256-color image as ostechnix-fs8.png No errors detected while quantizing 1 image.
Jetzt sehen Sie den Fortschritt, während die Komprimierung stattfindet.
Mehrere PNG-Bilder komprimieren
Pngquant kann auch mehrere Bilder konvertieren. Der folgende Befehl komprimiert picture1.png und picture2.png im aktuellen Arbeitsverzeichnis.
$ pngquant picture1.png picture2.png
Außerdem können wir alle Dateien in ein Verzeichnis verschieben und auf einmal komprimieren. Um beispielsweise alle Bilder in einem Ordner namens „/home/sk/images“ zu konvertieren, führen Sie Folgendes aus:
$ pngquant /home/sk/images/*.png
Suffix des Ausgabedateinamens ändern
Wie ich bereits sagte, ist der Ausgabedateiname derselbe wie der Eingabename, außer dass er auf "-fs8.png" endet , "-or8.png" . Sie können das Suffix jedoch wie unten beschrieben nach Belieben ändern.
$ pngquant ostechnix.png --ext linux.png
Dieser Befehl komprimiert die Datei ostechnix.png und speichert sie als ostechnixlinux.png .
Speichern von Dateien überspringen, wenn komprimierte Dateien größer als Originaldateien sind
Welchen Sinn hat die Komprimierung, wenn die konvertierten Dateien größer als die Quelldateien sind? Diese Konvertierung ist es nicht wert, also können wir sie wie unten überspringen.
$ pngquant --skip-if-larger ostechnix.png
Der obige Befehl speichert die konvertierte Datei nur, wenn sie kleiner als das Original ist.
Konvertierte Dateien in einem anderen Pfad speichern
Standardmäßig speichert Pngquant die Eingabe- und Ausgabebilddateien selbst im selben Verzeichnis. Wenn Sie die Ausgabedatei woanders speichern möchten, lautet der Befehl:
$ pngquant ostechnix.png --output Documents/output.png
Dieser Befehl komprimiert ostechnix.png und speichert es als output.png in Dokumente Verzeichnis.
PNG-Bilder in benutzerdefinierter Qualität komprimieren
Pngquant komprimiert die Bilder so weit wie möglich. Wir können die Qualität der Bilder auch manuell einstellen. Mit Pngquant können wir die Bildqualität im Bereich 0 einstellen (am schlechtesten) auf 100 (perfekt) mit min und max Parameter.
Im folgenden Beispiel wird die minimale Bildqualität auf 60 und die maximale Qualität auf 80 festgelegt.
$ pngquant --quality=60-80 image.png
Wenn die Konvertierung zu einer Qualität unter der Mindestqualität führt, wird das Bild nicht gespeichert.
Streifenbild-Metadaten
Bildmetadaten sind eine Reihe von Daten über die Magier. Es enthält alle Informationen zu einem Bild, wie Bildformat, Kameraeinstellungen, DPI, Datum und Uhrzeit des Bildes, Titel und Kommentare, Geolokalisierung und vieles mehr. Lesen Sie den folgenden Artikel, um zu erfahren, wie Sie Bildmetadaten anzeigen können.
- Anzeigen von Bildmetadaten unter Linux
Wenn Sie die Metadaten nicht haben, können Sie sie einfach mit pngquant wie unten entfernen.
$ pngquant --strip image.png
Weitere Einzelheiten finden Sie in den Manpages.
$ man pngquant
Empfohlene Lektüre:
- Converseen - Ein einfacher grafischer Batch-Bildkonverter und Resizer
- 3 CLI-Bildbetrachter zum Anzeigen von Bildern im Terminal
- So zeigen Sie Miniaturbilder im Terminal an
- So speichern Sie die Linux-Befehlsausgabe in einem Bild oder einer Textdatei
- Gifski – Ein plattformübergreifender hochwertiger GIF-Encoder
- Flameshot – Ein einfaches, aber leistungsstarkes Screenshot-Tool mit vielen Funktionen
Ich benutze Pngquant schon seit vielen Jahren. Es hilft mir sehr, PNG-Bilder um bis zu 70 % oder mehr zu komprimieren. Wenn Sie nach einem Optimierer und Komprimierer für PNG-Bilder suchen, ist Pngquant möglicherweise eine gute Wahl.