Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
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 zu finden.
Das Programm ist in den offiziellen Paketquellen vorhanden. Folgendes Paket muss installiert werden [1]:
optipng
mit apturl
Paketliste zum Kopieren:
sudo apt-get install optipng
sudo aptitude install optipng
Bis einschließlich Ubuntu 14.04 kann eine aktuellere Version als die in den offiziellen Paketquellen enthaltene über ein "Personal Package Archiv" (PPA) [2] bezogen werden:
Adresszeile zum Hinzufügen des PPAs:
ppa:optipng/stable
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams optipng zu entnehmen.
Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.
Nach dem Aktualisieren der Paketquellen erfolgt die Installation wie oben angegeben.
Das Programm wird im Terminal [4] 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
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.
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
).
Ü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. |
Ü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. |
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.
Für über diese Einführung hinausgehende Optionen und Bedienhinweise lohnt ein Blick in die Manpage.
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
A guide to PNG optimization - Einführung in PNG-Optimierung
Befehlsübersicht für Version 0.7.4 (PDF, ca. 12 KB, 4 Seiten)
PNG-Bilder (automatisch) optimieren - Blogbeitrag, 04/2013
Grafik Programmübersicht
Diese Revision wurde am 1. Juli 2016 16:25 von aasche erstellt.