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

Wie dreht man alle Bilder in einem Verzeichnis mit Imagemagick?

Ich möchte alle Bilder in einem Verzeichnis drehen, die einem Muster entsprechen.

Bisher habe ich:

for file in `ls /tmp/p/DSC*.JPG`; do
  convert $file -rotate 90 file+'_rotated'.JPG
done

aber das gibt keine Ausgabe?

Akzeptierte Antwort:

Es gibt einige Probleme mit Ihrem Code. Zuallererst parsen Sie ls, was eine schlechte Idee ist. Sie müssen auch auf die Variable als $file verweisen wie Sie darauf hinweisen, und Sie sollten es auch zitieren, damit es nicht in Leerzeichen bricht. Sie deklarieren num aber es wird nie benutzt. Ein sicherer Weg wäre:

find /tmp/p/ -name "DSC*.JPG" | while IFS= read -r file; do
  convert "$file" -rotate 90 "$file"_rotated.JPG
done

Dies wird immer noch Probleme haben, wenn Ihre Dateien Zeilenumbrüche enthalten, aber zumindest wird es nicht brechen, wenn Ihr Pfad Leerzeichen enthält.

Wenn sich die Dateien alle im selben Verzeichnis befinden, kann dies durch Globbing weiter vereinfacht werden. Sie können auch die Parametererweiterung verwenden, um foo_rotated.JPG1 zu erstellen statt foo.JPG_rotated.JPG :

for file in /tmp/p/DSC*.JPG; do
  convert "$file" -rotate 90 "${file%.JPG}"_rotated.JPG
done

Linux
  1. So installieren Sie ImageMagick unter Amazon Linux

  2. Kurztipp:Konvertieren Sie Bilder auf der Befehlszeile mit ImageMagick

  3. Wie lösche ich alle Dateien mit einer bestimmten Erweiterung in einem bestimmten Ordner?

  4. Wie installiere ich alle installierten Pakete mit Zypper neu?

  5. Wie finde ich alle Dateien mit einem bestimmten übergeordneten Verzeichnis in Linux?

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So führen Sie alle Skripte in einem Verzeichnis unter Linux aus

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

So konvertieren Sie JPG-Bilder mit dem Terminal in PDF

So verbinden Sie sich mit Samba mit Linux Active Directory

Wie benenne ich alle Dateien mit Sonderzeichen und Leerzeichen in einem Verzeichnis um?