Website-Suche

4 Möglichkeiten zur Stapelkonvertierung Ihres PNG in JPG und umgekehrt


In der Informatik ist die Stapelverarbeitung die nicht-interaktive Ausführung einer Reihe von Aufgaben in einem Programm. In dieser Anleitung werden Ihnen vier einfache Möglichkeiten zur Stapelkonvertierung mehrerer .PNG-Bilder in .JPG und umgekehrt mithilfe von Linux-Befehlszeilentools vorgestellt.

Wir werden in allen Beispielen das Befehlszeilentool convert verwenden. Sie können dies jedoch auch mit mogrify erreichen.

Die Syntax für die Verwendung von convert lautet:

convert input-option input-file output-option output-file

Und für mogrify gilt:

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 Verwenden bestimmter Optionen, die Sie in der Manpage finden.

Nachfolgend finden Sie die verschiedenen Möglichkeiten zur Stapelkonvertierung aller .PNG-Bilder in das .JPG-Format, wenn Sie .JPG in konvertieren möchten .PNG können Sie die Befehle entsprechend Ihren Anforderungen ändern.

1. Konvertieren Sie PNG in JPG mit den Befehlen „ls“ und „xargs“.

Mit dem Befehl ls können Sie alle Ihre png-Bilder auflisten, und mit xargs können Sie einen convert-Befehl aus der Standardeingabe erstellen und ausführen, um alle zu konvertieren .png-Bilder in .jpg umwandeln.

----------- 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 der im obigen Befehl verwendeten Optionen.

  1. -1 – Flag weist ls an, ein Bild pro Zeile aufzulisten.
  2. -n – gibt die maximale Anzahl von Argumenten an, die in diesem Fall 1 ist.
  3. -c – weist Bash an, den angegebenen Befehl auszuführen.
  4. $ {0%.png}.jpg – legt den Namen des neuen konvertierten Bildes fest, das Zeichen % hilft dabei, die alte Dateierweiterung zu entfernen.

Ich habe den Befehl ls -ltr verwendet, um alle Dateien nach Änderungsdatum und -uhrzeit aufzulisten.

Ebenso können Sie den obigen Befehl verwenden, um alle Ihre .jpg-Bilder in .png zu konvertieren, indem Sie den obigen Befehl anpassen.

2. Konvertieren Sie PNG in JPG mit dem GNU-Befehl „Parallel“.

GNU Parallel ermöglicht es einem Benutzer, Shell-Befehle aus der Standardeingabe parallel zu erstellen und auszuführen. Stellen Sie sicher, dass GNU Parallel auf Ihrem System installiert ist, andernfalls 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]

Sobald das Parallel-Dienstprogramm installiert ist, können Sie den folgenden Befehl ausführen, um alle .png-Bilder aus der Standardeingabe in das .jpg-Format zu konvertieren.

----------- Convert PNG to JPG ----------- 
parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
parallel convert '{}' '{.}.png' ::: *.jpg

Wo,

  1. {} – Eingabezeile, die eine Ersatzzeichenfolge ist, die durch eine vollständige Zeile ersetzt wird, die aus der Eingabequelle gelesen wird.
  2. {.} – Eingabezeile minus Erweiterung.
  3. ::: – gibt die Eingabequelle an, d. h. die Befehlszeile für das obige Beispiel, wobei *png oder *jpg das Argument ist.

Alternativ können Sie auch die Befehle ls und parallel zusammen verwenden, 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 den Aufwand beim Schreiben eines Shell-Skripts zu vermeiden, können Sie wie folgt eine for-Schleife über die Befehlszeile ausführen:

----------- 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:

  1. -c ermöglicht die Ausführung der for-Schleifenanweisung in einfachen Anführungszeichen.
  2. Die Variable image ist ein Zähler für die Anzahl der Bilder im Verzeichnis.
  3. Bei jedem Konvertierungsvorgang informiert der Echo-Befehl den Benutzer darüber, dass ein PNG-Bild in das jpg-Format und umgekehrt in der Zeile $image konvertiert in & konvertiert wurde. #36 {image%.png}.jpg ”.
  4. „$ {image%.png}.jpg“ erstellt den Namen des konvertierten Bildes, wobei % die Erweiterung des alten Bildformats entfernt.

4. Konvertieren Sie PNG mit Shell-Skript in JPG

Wenn Sie Ihre Befehlszeile nicht wie im vorherigen Beispiel verunreinigen möchten, schreiben Sie ein kleines Skript wie dieses:

Hinweis: Tauschen Sie die Erweiterungen .png und .jpg entsprechend aus, wie im Beispiel unten, um aus einem Format zu konvertieren zum anderen.

#!/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, 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-Bildern in das .jpg-Format und umgekehrt behandelt. Wenn Sie Bilder optimieren möchten, können Sie unsere Anleitung lesen, die zeigt, wie Sie PNG- und JPG-Bilder unter Linux komprimieren.

Sie können uns auch alle anderen Methoden mitteilen, einschließlich Linux-Befehlszeilentools zum Konvertieren von Bildern von einem Format in ein anderes auf dem Terminal, oder über den Kommentarbereich unten eine Frage stellen.