Bilder mit Guetzli im Docker Container konvertieren
Wer Bilder mit Guetzli konvertieren möchte und keine Lust darauf hat, alle nötigen Programme und Libraries zu installieren, kann das folgende mini-Skript nutzen, welches ich geschrieben habe. Dieses führt einen Docker Container aus, in welchem Guetzli und alle Abhängigkeiten bereits installiert sind. Alle Bilder die dem Container mittels Skript übergeben werden, werden verarbeitet und anschließend wieder ausgegeben.
Mein Beitrag war lediglich das Skript. Das Container-Image stand bereits im Docker Hub zur Verfügung.
Wie das ganze zu benutzen ist, werde ich hier kurz erklären.
Download
Um das Skript zu verwenden, lädt man es zuerst mit dem folgenden Kommando herunter:
git clone https://github.com/bjarneeins/guetzlidocker.git
Benutzung
Nun muss das Skript noch ausführbar gemacht werden. Das gelingt wie folgt:
chmod +x guetzlidocker/guetzlidocker.sh
Zur Benutzung gibt es zwei Methoden, welche ich auch auf GitHub beschrieben habe.
Methode 1:
Eine der Methoden ist es, dem Skript lediglich ein einzelnes Bild zur Verarbeitung zu übergeben. Dies erreicht man wie folgt:
bash guetzlidocker.sh /home/user/Bilder/1234.jpg
Hiermit wird das Skript ausgeführt und das Bild 1234.jpg unter dem Pfad /home/user/Bilder/ bearbeitet.
Methode 2:
Um mehrere Bilder gleichzeitig zu verarbeiten, kann die folgende Methode genutzt werden:
bash guetzlidocker.sh /home/user/Bilder/*
Hiermit wird das Skript ausgeführt und es werden alle Bilder unter dem Pfad /home/user/Bilder/ bearbeitet.
Während der Verarbeitung kann man mit htop gut beobachten, wie viele Ressourcen der Prozess ungefähr einnimmt.
Ergebnis
Bei beiden Methoden werden am gleichen Ort, wo sich bereits die Originaldateien befanden, die neuen, mit Guetzli konvertierten Dateien befinden.
Qualität anpassen
Um eine relativ kleine Datei zu erhalten und dennoch eine hohe Qualität zu haben, habe ich die Qualität auf den niedrigsten möglichen Wert gesetzt (85). Wenn eine höhere Qualität gewünscht ist, kann dies im Skript angepasst werden. Hierzu muss einfach das Argument für die Option –quality im Docker Run Kommando geändert werden.
.. docker run --rm -it -v "$(pwd):/work" -w /work icedream/guetzli \ --quality 85 $file $guetzlifile done
Quelle Vorschaubild:
By Google Inc. – https://github.com/google/guetzli/blob/master/guetzli.svg
Apache License 2.0, https://commons.wikimedia.org/w/index.php?curid=64502252