optipng
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:
OptiPNG 🇬🇧 ist ein freies, unter zlib/libpng-Lizenz herausgegebenes Kommandozeilenprogramm zur verlustfreien automatischen Größenoptimierung von Bilddateien. Das Programm nimmt die automatische Optimierung von PNG-Dateien dabei in bis zu vier Schritten vor:
Reduzierung der Bit-Tiefe, des Farbtyps und der Palette eines Bildes
Durchlauf verschiedener Kompressionsmethoden und -strategien und Auswahl der optimalen Kompressionsparameter
Vereinigung aller IDAT-Inhalte 🇬🇧 in einen einzigen Datenblock
Optimierung der zlib-Einstellungen 🇬🇧
Um alle Möglichkeiten bei der Optimierung von PNG-Bilddateien voll ausschöpfen zu können, lohnt es sich gegebenenfalls, sich zuvor ein wenig in die Hintergründe des PNG-Formats und seiner Komprimierung und Optimierung 🇬🇧 einzulesen.
Das Programm, welches in der Programmiersprache C geschrieben ist, kann auch Fremdformate wie BMP, GIF, PNM und TIFF unter gleichzeitiger Verwendung seiner Optimierungsalgorithmen ins PNG-Format umwandeln und ist ebenfalls in der Lage, die Integrität von PNG-Dateien zu überprüfen. Alternative Programme sind im Artikel Wiki/Bildschirmfotos (Abschnitt „pngquant“) zu finden.
Installation¶
Das Programm ist in den offiziellen Paketquellen vorhanden. Folgendes Paket muss installiert werden [1]:
optipng
Befehl zum Installieren der Pakete:
sudo apt-get install optipng
Oder mit apturl installieren, Link: apt://optipng
Benutzung¶
Das Programm wird im Terminal [2] verwendet. Der allgemeine Befehlsaufruf lautet:
optipng [OPTION(EN)] DATEI(EN)
Es können auch per Platzhalter mehre Dateien in einem Ordner bearbeitet werden. Die Bearbeitung aller PNG-Bilder im Arbeitsverzeichnis erfolgt z.B. durch folgenden Befehl:
optipng [OPTION(EN)] *.png
Sollen beispielsweise alle PNG-Bilder im Arbeitsverzeichnis, deren Namen mit "Bild" beginnen, zur Optimierung herangezogen werden, kann dies auf folgende Weise erreicht werden:
optipng [OPTION(EN)] Bild*.png
Dateibehandlung¶
Für den Fall, dass eine bestehende PNG-Bilddatei bearbeitet wird, wird die Originaldatei vom Programm durch die optimierte Datei ersetzt (Standardeinstellung). Sofern die Originaldatei erhalten bleiben soll, ist ein Backup derselben anzulegen. Hierfür ist die Option -keep
zu verwenden.
Im Falle, dass das Bild in einem externen Format vorliegt, generiert das Programm eine optimierte PNG-Datei aus dem Ausgangsmaterial und legt die Zieldatei unter dem Originalnamen mit Dateiendung .png an. Eine rekursive Verarbeitung ist im Programm nicht vorgesehen. Das heißt. die zu bearbeitenden Dateien müssen im Arbeitsverzeichnis liegen oder die Pfade manuell angegeben werden.
Optionen¶
Syntaxinformationen zu den Optionen¶
Sofern einer Option ein Argument hinzugefügt werden muss, so ist diese durch ein Leerzeichen oder durch ein "=
" von dieser zu trennen (Beispiel: -out neues_bild.png
entspricht -out=neues_bild.png
). Wenn es sich bei dem Argument um eine Ziffer (oder einen Zahlenbereich) handelt, kann diese(r) auch unmittelbar an die Option angehängt werden (Beispiel: -o3
entspricht -o 3
entspricht -o=3
). Zahlenbereichsargumente sind kumulativ (-f0 -f3-5
entspricht -f0,3-5
).
Basisoptionen¶
Übersicht über die Basisoptionen | |
Option | Erklärung |
-keep | Backup der bearbeiteten Dateien erstellen. |
-dir VERZEICHNIS | Schreibt die Ausgabedatei in das angegebene VERZEICHNIS . |
-out DATEI | Schreibe die Ausgabedatei nach DATEI . Diese Option ist nur bei Vorliegen von genau einer Eingabedatei erlaubt. |
-force | Erzwingt das Erstellen einer neuen Ausgabedatei, zum Beispiel falls die Ausgabedatei größer wird als die Eingabedatei, was in der normalen Standardeinstellung nicht ausgeführt würde. |
-fix | Versucht die Integrität beschädigter Eingabedateien wiederherzustellen. Wenn diese Option nicht aktiviert ist, werden ungültige Eingabedateien bei der Bearbeitung ausgelassen. |
-preserve | Erhält soweit möglich die Dateiattribute (Zeitstempel, Dateiberechtigungen usw.). |
-log DATEI | Schreibt die Programmausgaben in eine Protokoll-DATEI , welche die Dateiendung .log besitzen muss. |
-simulate | Führt optipng im Simulationsmodus aus. Es werden keine Ausgabedateien generiert. |
-quiet | Das Programm läuft im stillen Modus und zeigt keine Mitteilungen an. Wenn die Option -log aktiviert ist, werden die Ausgaben dennoch in der Protokolldatei niedergelegt. |
-verbose | Erhöht die Ausführlichkeit der ausgegebenen Informationen. |
-? , -h , -help | Komplette Zusammenstellung der möglichen Optionen anzeigen. |
-version | Gibt Versionsinformationen aus. |
Codierungs- und Optimierungsoptionen¶
Übersicht über die Kodierungs-/Optimierungsoptionen | |
Option | Erklärung |
-o STUFE | Wählt die Optimierungsstufe aus. Je höher der Wert, der für STUFE angegeben wird, desto mehr Versuche unternimmt das Programm zur Dateioptimierung, was gleichzeitig Einfluss auf die Dauer der Bearbeitung hat. Hinweis: das Verhalten dieser Option kann je nach verwendeter Programmversion abweichen; zum Verhalten der eigenen Version ist die Hilfe-Option zu Rate zu ziehen. |
-f FILTER | Wählt den zu verwendenden Vorfilter aus. Mögliche Werte für FILTER sind: 1 (= "None"); 2 (= "Left"); 3 (= "Up"); 4 (= "Average"); 5 (= "Paeth"). Anwendungsbeispiel: -f0,3-5 |
-i TYP | Legt den TYP des Zeilensprungverfahren (engl. interlacing) fest: 0 = kein Interlacing; 1 = Interlacing nach Adam7. Standardeinstellung: Interlacing-Typ ist bei Ausgabedatei gleich wie bei Eingabedatei. |
-nb | Keine Bit-Tiefenreduktion anwenden. |
-nc | Keine Farbtypreduktion anwenden. |
-np | Keine Palettenreduktion anwenden. |
-nx | Keine Bildreduktion anwenden (entspricht der Aktivierung der Optionen -nb , -nc und -np ). |
-nz | Keine Rekodierung der IDAT-Datenströme vornehmen, sondern nur Optimierungsaktionen vornehmen, die keine Rekodierung erfordern (z.B. Zusammenführung von IDAT-Datenblöcken). Diese Aktion wirkt sich nur auf PNG-Eingabedateien aus. |
-zc STUFEN | Zlib-Komprimierungsstufen wählen. Die STUFEN werden als Bereich angegeben (z.B. -zc6-9 ); die Standardeinstellung hängt von dem Optimierungswert ab, welcher bei der Option -o gesetzt wurde. |
-zm LEVELS | Zlib-Memory-Levels, welche für die IDAT-Kompression verwendet werden. Die LEVELS werden als Bereich angegeben (z.B. -zm8-9 ); die Standardeinstellung hängt von dem Optimierungswert ab, welcher bei der Option -o gesetzt wurde. |
-zs STRATEGIEN | Auswahl der zlib-Kompressionsstrategien, welche für die IDAT-Kompression verwendet werden. Die STRATEGIEN werden als Bereich angegeben (z.B. -zs0-3 ); die Standardeinstellung hängt von dem Optimierungswert ab, welcher bei der Option -o gesetzt wurde. |
-zw WINDOWSIZE | Auswahl der zlib-Window-Size (32k,16k,8k,4k,2k,1k,512,256), welche für die IDAT-Kompression verwendet werden. Die WINDOWSIZE kann entweder in Bytes (z.B. 16384) oder Kilobytes (z.B. 16k) angegeben werden. |
Editierung¶
Mittels der Editierungsoption -snip
kann ein Bild aus z.B. Animations- oder Videodateien ausgeschnitten werden. Abhängig vom Eingabeformat wird vom Programm entweder das erste oder das relevanteste (z.B. größte) Bild verwendet.
Hilfe/Handbuch¶
Für über diese Einführung hinausgehende Optionen und Bedienhinweise lohnt ein Blick in die Manpage.
Fehlende Implementierungen im Programm¶
Nach Aussagen der Entwickler sind folgende Funktionen noch nicht oder nur teilweise im Programm implementiert:
Die Farbpaletten-Reduktion ist bis jetzt nur teilweise implementiert
Die Reduktion der Bit-Tiefe unter 8 ist für Graustufenbilder noch nicht implementiert
Die Codierung von Bildern wird derzeit nur bis zu einer IDAT-Größe von 2GB unterstützt
TIFF wird nur für nicht-komprimierte und PNG-kompatible (Graustufen, RGB und RGBA) Bilder unterstützt
Von externen Bildformaten werden noch keine Metadaten importiert
Links¶
Projektseite 🇬🇧
A guide to PNG optimization 🇬🇧 - Einführung in PNG-Optimierung
Befehlsübersicht für Version 0.7.7 🇬🇧 ⮷ (PDF, ca. 12 KB, 4 Seiten)
PNG-Bilder (automatisch) optimieren 🇩🇪 - Blogbeitrag, 04/2013
Grafik Programmübersicht