GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Batch-Konvertierung von PNG in JPG unter Linux

Am besten verwenden Sie ImageMagick.

Ich bin kein Experte für die tatsächliche Verwendung, aber ich weiß, dass Sie damit so ziemlich alles machen können, was mit Bildern zu tun hat!

Ein Beispiel ist:

convert image.png image.jpg

wodurch das Original erhalten bleibt und das konvertierte Bild erstellt wird.

Was die Batch-Konvertierung betrifft, müssen Sie meiner Meinung nach das Mogrify-Tool verwenden, das Teil von ImageMagick ist.

Denken Sie daran, dass dies überschreibt die alten Bilder.

Der Befehl lautet:

mogrify -format jpg *.png

Ich habe noch ein paar Lösungen.

Die einfachste Lösung ist wie die meisten schon gepostet. Eine einfache Bash-for-Schleife.

for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done

Aus irgendeinem Grund neige ich dazu, Schleifen in Bash zu vermeiden, also ist hier ein eher unixy xargs-Ansatz, der Bash für die Namensverstümmelung verwendet.

ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.*}.jpg"'

Die, die ich verwende. Es verwendet GNU Parallel, um mehrere Jobs gleichzeitig auszuführen, was Ihnen einen Leistungsschub verschafft. Es ist standardmäßig auf vielen Systemen installiert und befindet sich fast definitiv in Ihrem Repo (es ist ein gutes Programm, das Sie haben sollten).

ls -1 *.png | parallel convert '{}' '{.}.jpg'

Die Anzahl der Jobs entspricht standardmäßig der Anzahl der CPU-Kerne, die Sie haben. Ich habe eine bessere CPU-Auslastung mit 3 Jobs auf meinem Dual-Core-System festgestellt.

ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'

Und wenn Sie ein paar Statistiken wollen (eine voraussichtliche Ankunftszeit, abgeschlossene Jobs, durchschnittliche Zeit pro Job...)

ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'

Es gibt auch eine alternative Syntax, wenn Sie GNU Parallel verwenden.

parallel convert '{}' '{.}.jpg' ::: *.png

Und eine ähnliche Syntax für einige andere Versionen (einschließlich Debian).

parallel convert '{}' '{.}.jpg' -- *.png

Der convert Der auf vielen Linux-Distributionen zu findende Befehl wird als Teil der ImageMagick-Suite installiert. Hier ist der Bash-Code zum Ausführen von convert auf alle PNG-Dateien in einem Verzeichnis und vermeiden Sie das Problem der doppelten Erweiterung:

for img in *.png; do
    filename=${img%.*}
    convert "$filename.png" "$filename.jpg"
done

Linux
  1. Linux-Image aus der Zwischenablage

  2. Konvertieren Sie TrueType-Glyphen in ein PNG-Bild?

  3. Linux Dateien in Großbuchstaben umbenennen

  4. Wie konvertiere ich PPTX-Dateien in JPG oder PNG (für jede Folie) unter Linux?

  5. Konvertieren Sie Webp-Bilder per Linux-Befehl in PNG

So konvertieren Sie PDF-Dateien im Stapelbetrieb unter Linux

Konvertieren Sie PNG in JPEG, JPEG in PNG über die Befehlszeile in Ubuntu

So konvertieren Sie eine PDF-Datei in ein PNG/JPG-Bild unter Linux

So konvertieren Sie PNG-Bilder im Stapelbetrieb in das JPG-Format unter Linux

So konvertieren Sie eine Webseite unter Linux in PDF

So konvertieren Sie PDF in PNG-Bilder und zurück unter Linux