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

Konvertieren Sie eine Reihe von BMP-Dateien unter Linux in JPEG

Sie können das Mogrify-Tool von ImageMagick verwenden

mogrify -format jpg *.bmp

Sie haben wahrscheinlich ImageMagick auf Ubuntu installiert.
Das kann reichen,

convert filename.bmp filename.jpg

aktualisieren:

Der mogrify (beantwortet mit hyperslug und verwiesen durch cjm ) ist ebenfalls eine gute Option.

Verwenden Sie das Mogrify Programm, um die Größe eines Bildes zu ändern, zu verwischen, zuzuschneiden, Flecken zu entfernen, zu dithern, darauf zu zeichnen, zu spiegeln, zu verbinden, neu zu sampeln und vieles mehr.
Dieses Tool ähnelt Konvertieren außer dass die ursprüngliche Bilddatei überschrieben wird
(es sei denn, Sie ändern die Dateiendung mit dem -format Option) mit allen gewünschten Änderungen.


Lassen Sie mich eine kleine Änderung an der Lachselch-Antwort vornehmen:

for i in `ls *.bmp`; do convert $i $i.jpg; done

Das obige funktioniert, erzeugt aber Dateien mit dem Namen "bmp.jpg". Sie können .jpg-Dateien mit diesem Befehl erhalten:

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

Siehe man bash für Einzelheiten zu for Befehl. Die ${i%bmp} Teil bedeutet die Zeichenfolge "${i}" ohne die Teilzeichenfolge "bmp" am Ende.

Es gibt andere Operationen, um den String in "${i}" umzuwandeln. "$i" ist eine Abkürzung für "${i}". Die ls *.bmp Teil in der Antwort von Salmonmoose bedeutet "ls *.bmp ausführen , dann die für i part weist jede durch Leerzeichen getrennte Zeichenkette i zu ". Dasselbe wird durch *.bmp erreicht weil es mit allen Dateinamen im Verzeichnis übereinstimmt.

Es gibt einen Nachteil bei for - wenn die Dateien in Ihrem Verzeichnis Leerzeichen im Namen haben, zB "Hochzeitsbild 1.bmp", wird es 3 mal dem i zugeordnet var, indem Sie diese Befehle ausführen:

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

In meiner Antwort schlägt auch das Match "${i%bmp}" fehl.

Aber es gibt eine Lösung - Sie können den find verwenden stattdessen befehlen. Siehe man find für Details. Sie sollten etwas wie das Folgende eingeben (bitte überprüfen Sie die Syntax anhand der Manpage, bevor Sie es versuchen):

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(Ich bin mir beim Namensteil nicht ganz sicher, und bei -exec habe ich einige Zweifel Teil, siehe man find zuerst)

Wenn Sie alle Bilder in einer .jpg-Datei zusammenführen möchten, können Sie sie mit einem anderen Filter verketten, wie dem in der ersten Antwort erwähnten.


Linux
  1. So konvertieren Sie Dateien in UTF-8-Codierung unter Linux

  2. Linux-Suchbefehle

  3. Linux-Logdateien

  4. Linux-ls-Befehl - Dateien auflisten

  5. mcopy-Befehl unter Linux

So konvertieren Sie PDF-Dateien im Stapelbetrieb unter Linux

Steganographie – Dateien in Bildern unter Linux verstecken

So konvertieren Sie PDF-Dateien mit Calibre in Linux in das EPUB-Format

So konvertieren Sie Raw-Kamerabilder in JPEG in Linux

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

ls-Befehl unter Linux/UNIX