Antworten:
Sie können das Mogrify-Tool von ImageMagick verwenden
mogrify -format jpg * .bmp
sudo apt install imagemagick
auf Ubuntu und Sie können die Qualität einstellen, indem Sie-quality 100
Wahrscheinlich ist ImageMagick auf Ubuntu installiert.
Das kann ,
convert filename.bmp filename.jpg
aktualisieren:
Das mogrify
(beantwortet von hyperslug
und empfohlen von cjm
) ist auch eine gute Option.
Verwenden Sie das Programm mogrify , um die Größe eines Bildes zu ändern, es zu verwischen, zuzuschneiden, zu flecken, zu zittern, zu zeichnen, zu drehen, zusammenzufügen, erneut abzutasten und vieles mehr.
Dieses Tool kann ähnlich konvertiert werden, mit der Ausnahme, dass die ursprüngliche Bilddatei
mit den von Ihnen angeforderten Änderungen überschrieben wird (es sei denn, Sie ändern das Dateisuffix mit der-format
Option).
Lassen Sie mich eine kleine Änderung an der Antwort des Lachses vornehmen:
for i in `ls *.bmp`; do convert $i $i.jpg; done
Das obige funktioniert, generiert aber Dateien mit dem Namen "bmp.jpg". Mit diesem Befehl können Sie JPG-Dateien abrufen:
for i in *.bmp; do convert ${i} ${i%bmp}jpg; done
Siehe man bash
Einzelheiten des for
Befehls. Der ${i%bmp}
Teil bedeutet die Zeichenfolge "$ {i}" ohne die Teilzeichenfolge "bmp" am Ende.
Es gibt andere Operationen, um die Zeichenfolge in "$ {i}" umzuwandeln. "$ i" ist eine Abkürzung für "$ {i}". Der ls *.bmp
Teil in der Lachs-Antwort bedeutet "Ausführen ls *.bmp
, dann i
weist der for- Teil jede durch Leerzeichen getrennte Zeichenfolge zu i
". Dasselbe wird erreicht, *.bmp
weil es mit allen Dateinamen im Verzeichnis übereinstimmt.
Ein Nachteil besteht darin, dass for
- wenn die Dateien in Ihrem Verzeichnis Leerzeichen im Namen enthalten, z. B. "wedding picture 1.bmp", diese dem i
var dreimal zugewiesen werden und die folgenden Befehle ausgeführt werden:
convert wedding wedding.jpg
convert picture picture.jpg
convert 1.bmp 1.bmp.jpg
In meiner Antwort schlägt auch die Übereinstimmung "$ {i% bmp}" fehl.
Es gibt jedoch eine Lösung: Sie können find
stattdessen den Befehl verwenden. Siehe man find
für weitere Einzelheiten. Sie sollten Folgendes eingeben (bitte überprüfen Sie die Syntax in der Manpage, bevor Sie es versuchen):
find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;
(Ich bin mir des Namens nicht sicher, und ich habe einige Zweifel an dem -exec
Teil, siehe man find
zuerst)
Wenn Sie alle Bilder in einer JPG-Datei zusammenfügen möchten, können Sie sie mit einem anderen Filter verknüpfen, wie in der ersten Antwort erwähnt.
for i in `ls *.bmp`; do convert $i $i.jpg; done
Ja, dies wird eine Reihe von Dateien mit dem Namen filename.bmp.jpg erzeugen, aber es wird den Job erledigen.
ls
.