Bagaimana cara memutar satu set gambar dari baris perintah?

17

Saya memiliki banyak gambar JPEG dengan resolusi yang sama. Butuh waktu terlalu lama untuk membuka masing-masing di dalam antarmuka grafis imagemagic atau gimp.

Bagaimana caranya agar setiap gambar diputar dan disimpan sebagai nama file yang sama?

sharkant
sumber
3
Lihat di sini . Namun berhati-hatilah bahwa encoding ulang JPEG pada umumnya lossy.
Satō Katsura

Jawaban:

22

Anda dapat menggunakan convertperintah:

 convert input.jpg -rotate -degrees out.jpg

misalnya:

convert input.jpg -rotate -180 out.jpg

Simpan dengan nama yang sama:

convert file.jpg -rotate -180 file.jpg

Putar semua file:

for photo in *.jpg ; do convert $photo -rotate 90 $photo ; done

Edit

Anda dapat menggunakan mogrifyalat baris perintah (alat terbaik) yang direkomendasikan oleh @ don-crissti

mogrify -rotate 90 *.jpg
GAD3R
sumber
1
thx, bagaimana saya memberi tahu perintah bahwa nama file kiri -rotate -180 harus sama dengan haknya, jika ada banyak file?
sharkant
Memutar file 180 derajat akan selalu memberi Anda hasil yang sama, tidak masalah jika Anda memutarnya ke kiri atau kanan.
djsmiley2k dalam kegelapan
@ GAD3R 360 derajat akan menghasilkan gambar yang sama sesudahnya. Memutar gambar ke kiri atau kanan sebesar 180 derajat, dengan keduanya memberi Anda gambar yang sama (tetapi terbalik).
djsmiley2k dalam kegelapan
2
$CAPITAL_NAMESharus diserahkan kepada variabel lingkungan; untuk variabel-variabel lokal dalam skrip atau perintah shell gunakan$normal_lowercase
cat
2
convertmengkode ulang JPEG dan karenanya lossy. Penggunaan yang lebih baikjpegtran
imz - Ivan Zakharyaschev
16

Untuk gambar JPEG dan rotasi sudut kanan, gunakan jpegtranatau exiftran, karena dapat memutar gambar tanpa kehilangan.

for f in *.jpg ; do 
    jpegtran -rotate 180 "$f" > "${f%.jpg}-rotated.jpg"
done

Atau untuk memutar di tempat:

for f in *.jpg ; do
    jpegtran -rotate 180 -outfile "$f" "$f"
done

exiftranjuga memiliki -abendera untuk secara otomatis memutar gambar berdasarkan apa yang dikatakan tag orientasi EXIF.

ilkkachu
sumber
Untuk rotasi berlawanan arah jarum jam (sudut kiri) dengan jpegtran, gunakan -rotate 270dan dengan -2bendera penggunaan exiftran sesuai dengan manual.
Timo