Beim Rechnen Batch Verarbeitung ist die nicht interaktive Ausführung einer Reihe von Aufgaben in einem Programm. In dieser Anleitung werden Ihnen 4 einfache Möglichkeiten zur Stapelkonvertierung mehrerer .PNG
vorgestellt Bilder in .JPG
und umgekehrt mit Linux-Befehlszeilentools.
Wir werden convert verwenden Befehlszeilentool in allen Beispielen, Sie können jedoch auch mogrify verwenden um dies zu erreichen.
Die Syntax für die Verwendung von convert ist:
$ convert input-option input-file output-option output-file
Und für mogrify ist:
$ mogrify options input-file
Hinweis :Mit mogrify , wird die ursprüngliche Bilddatei standardmäßig durch die neue Bilddatei ersetzt, aber es ist möglich, dies zu verhindern, indem Sie bestimmte Optionen verwenden, die Sie auf der Manpage finden.
Unten sind die verschiedenen Möglichkeiten zur Batch-Konvertierung Ihrer gesamten .PNG
Bilder in .JPG
Format, wenn Sie .JPG
konvertieren möchten zu .PNG
, können Sie die Befehle nach Ihren Bedürfnissen ändern.
1. Konvertieren Sie PNG in JPG mit den Befehlen „ls“ und „xargs“
Mit dem Befehl ls können Sie alle Ihre png auflisten Bilder und xargs ermöglichen das Erstellen und Ausführen einer Konvertierung Befehl von der Standardeingabe, um alle .png
zu konvertieren Bilder zu .jpg
.
----------- Convert PNG to JPG ----------- $ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"' ----------- Convert JPG to PNG ----------- $ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
Erläuterung zu den im obigen Befehl verwendeten Optionen.
-1
– Flag sagt ls um ein Bild pro Zeile aufzulisten.-n
– gibt die maximale Anzahl von Argumenten an, die 1 ist für den Fall.-c
– weist Bash an, den angegebenen Befehl auszuführen.${0%.png}.jpg
– setzt den Namen des neu konvertierten Bildes, das % Zeichen hilft, die alte Dateiendung zu entfernen.
Ich habe ls -ltr
verwendet Befehl zum Auflisten aller Dateien nach Datum und Uhrzeit der Änderung.
In ähnlicher Weise können Sie den obigen Befehl verwenden, um alle Ihre .jpg
zu konvertieren Bilder zu .png
indem Sie den obigen Befehl anpassen.
2. Konvertieren Sie PNG in JPG mit dem GNU-Befehl „Parallel“
GNU-Parallel ermöglicht einem Benutzer das parallele Erstellen und Ausführen von Shell-Befehlen aus der Standardeingabe. Stellen Sie sicher, dass Sie GNU Parallel auf Ihrem System installiert haben, ansonsten installieren Sie es mit den entsprechenden Befehlen unten:
$ sudo apt-get install parallel [On Debian/Ubuntu systems] $ sudo yum install parallel [On RHEL/CentOS and Fedora]
Einmal Parallel installiert haben, können Sie den folgenden Befehl ausführen, um alle .png
zu konvertieren Bilder zu .jpg
Format aus der Standardeingabe.
----------- Convert PNG to JPG ----------- $ parallel convert '{}' '{.}.jpg' ::: *.png ----------- Convert JPG to PNG ----------- $ parallel convert '{}' '{.}.png' ::: *.jpg
Wo,
{}
– Eingabezeile, die eine Ersatzzeichenfolge ist, die durch eine vollständige Zeile ersetzt wird, die aus der Eingabequelle gelesen wird.{.}
– Eingabezeile minus Extension.:::
– gibt die Eingabequelle an, d. h. die Befehlszeile für das obige Beispiel, wobei *png oder *jpg ist das Argument.
Alternativ können Sie auch ls und parallel verwenden Befehle zusammen, um alle Ihre Bilder wie gezeigt stapelweise zu konvertieren:
----------- Convert PNG to JPG ----------- $ ls -1 *.png | parallel convert '{}' '{.}.jpg' ----------- Convert JPG to PNG ----------- $ ls -1 *.jpg | parallel convert '{}' '{.}.png'
3. Konvertieren Sie PNG in JPG mit dem Befehl „for loop“
Um die Hektik des Schreibens eines Shell-Skripts zu vermeiden, können Sie eine for loop
ausführen von der Befehlszeile wie folgt:
----------- Convert PNG to JPG ----------- $ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done' ----------- Convert JPG to PNG ----------- $ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'
Beschreibung jeder Option, die im obigen Befehl verwendet wird:
- -c ermöglicht die Ausführung der for-Schleife-Anweisung in einfachen Anführungszeichen.
- Das Bild Variable ist ein Zähler für die Anzahl der Bilder im Verzeichnis.
- Bei jedem Konvertierungsvorgang informiert der echo-Befehl den Benutzer, dass ein PNG-Bild in jpg konvertiert wurde format und umgekehrt in der Zeile $image umgewandelt in ${image%.png}.jpg “.
- "${image%.png}.jpg" erstellt den Namen des konvertierten Bildes, wobei % entfernt die Erweiterung des alten Bildformats.
4. Konvertieren Sie PNG in JPG mit Shell-Skript
Wenn Sie Ihre Befehlszeile nicht wie im vorherigen Beispiel schmutzig machen wollen, schreiben Sie ein kleines Skript wie folgt:
Hinweis :Tauschen Sie die .png
entsprechend aus und .jpg
Erweiterungen wie im Beispiel unten für die Konvertierung von einem Format in ein anderes.
#!/bin/bash #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo “image $image converted to ${image%.png}.jpg ” done exit 0
Speichern Sie es als convert.sh
und machen Sie das Skript ausführbar und führen Sie es dann in dem Verzeichnis aus, in dem sich Ihre Bilder befinden.
$ chmod +x convert.sh $ ./convert.sh
Zusammenfassend haben wir einige wichtige Möglichkeiten zur Stapelkonvertierung von .png
behandelt Bilder in .jpg
formatieren und umgekehrt. Wenn Sie Bilder optimieren möchten, können Sie unsere Anleitung durchgehen, die zeigt, wie Sie PNG- und JPG-Bilder unter Linux komprimieren.
Sie können uns auch andere Methoden mitteilen, einschließlich Linux-Befehlszeilentools zum Konvertieren von Bildern von einem Format in ein anderes auf dem Terminal, oder eine Frage über den Kommentarbereich unten stellen.