[[Vorlage(Getestet, focal, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [sourceforge2:optipng:OptiPNG] {en} ist ein freies, unter [wikipedia:Zlib-Lizenz: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: 1. Reduzierung der Bit-Tiefe, des Farbtyps und der Palette eines Bildes 1. Durchlauf verschiedener Kompressionsmethoden und -strategien und Auswahl der optimalen Kompressionsparameter 1. Vereinigung aller [http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.IDAT IDAT]-Inhalte {en} in einen einzigen Datenblock 1. Optimierung der [http://zlib.net/zlib_tech.html zlib]-Einstellungen {en} 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 [wikipedia:Portable_Network_Graphics#Komprimierung:Komprimierung] und [http://optipng.sourceforge.net/pngtech/optipng.html Optimierung] {en} einzulesen. Das Programm, welches in der Programmiersprache [:Programmiersprache#C:C] geschrieben ist, kann auch Fremdformate wie [wikipedia:Windows_Bitmap:BMP], [wikipedia:GIF:], [wikipedia:PNM:] und [wikipedia:Tagged_Image_File_Format: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#pngquant:] zu finden. = Installation = Das Programm ist in den offiziellen Paketquellen vorhanden. Folgendes Paket muss installiert werden [1]: {{{#!vorlage Paketinstallation optipng }}} = Benutzung = Das Programm wird im Terminal [2] verwendet. Der allgemeine Befehlsaufruf lautet: {{{#!vorlage Befehl 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: {{{#!vorlage 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: {{{#!vorlage Befehl 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 === {{{#!vorlage Tabelle Ü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 === {{{#!vorlage Tabelle Ü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 [wikipedia:Zeilensprungverfahren:] (engl. interlacing) fest: `0` = kein Interlacing; `1` = Interlacing nach [wikipedia: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 [:man: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 = * [sourceforge2:optipng: Projektseite] {en} * [http://optipng.sourceforge.net/pngtech/optipng.html A guide to PNG optimization] {en} - Einführung in PNG-Optimierung * [http://optipng.sourceforge.net/history.txt Versionshistorie] {en} * [http://optipng.sourceforge.net/optipng-0.7.7.man.pdf Befehlsübersicht für Version 0.7.7] {en} {dl} (PDF, ca. 12 KB, 4 Seiten) * [http://www.deesaster.org/blog/index.php?/archives/2088 PNG-Bilder (automatisch) optimieren] {de} - Blogbeitrag, 04/2013 * [wikipedia:zlib:Zlib] * [http://zlib.net/zlib_tech.html technische Details zur Bibliothek Zlib] {en} * [:Grafik:] {Übersicht} Programmübersicht #tag: Grafik