Saya memiliki direktori dengan banyak gambar tetapi mereka berada dalam orientasi yang salah. Saya ingin memutar gambar ke arah yang benar (sebagian besar ± 90 o ). Menggunakan penampil gambar (foto shotwell) saya dapat memutarnya satu per satu dengan mengklik tombol putar tetapi itu terlalu membosankan.
Saya melihat man shotwell
dan shotwell --help-all
tetapi tidak ada yang menjelaskan cara menjalankan perintah rotate dari baris perintah.
Apakah ada cara saya dapat menjalankan perintah rotate dari shotwell (atau penampil lain) dari terminal? Atau metode lain untuk memutar gambar juga diterima.
command-line
scripts
images
shotwell
pranphy
sumber
sumber
Jawaban:
Jika Anda mencari implementasi bash murni,
convert
perintah ImageMagick adalah yang Anda cari:Di atas akan membiarkan file yang ada tetap utuh dan menyalin yang baru diputar
/tmp
sehingga Anda dapat memindahkan atau menyalinnya di tempat lain atau bahkan mengganti yang sudah ada setelah konversi dan setelah verifikasi .(dan ini akan bekerja pada semua rilis Ubuntu terbaru karena merupakan perangkat lunak standar)
sumber
Ini akan menyalin- memutar -dan-mengganti nama file Anda.
Jika Anda ingin membiarkan file asli belum tersentuh, metode ini mungkin berfungsi dengan baik untuk Anda ...
Perhatikan bahwa ini peka huruf besar-kecil: jika file Anda diberi nama * .jpg ganti dengan huruf kecil (atau * .png ...) yang sesuai.
sumber
Jika Anda ingin menimpa di tempat,
mogrify
dari suite ImageMagick tampaknya menjadi cara termudah untuk mencapai ini:CAVEAT : Ini bukan metode rotasi tanpa kehilangan untuk file JPEG, https://www.imagemagick.org/discourse-server/viewtopic.php?t=5899 .
jpegtran
mencapai ini (belum diuji):sumber
mogrify
tidak lossless untuk file JPEG, tetapijpegtran
.Begini cara saya melakukannya:
Instal gThumb
Buka nautilus dan buka direktori gambar Anda. Klik kanan pada salah satu dan pilih
Open with -> gthumb
.Di bawah
view
menu pilihBrowser
atau tekan Esctombol. Ini akan membuka browser direktori yang menunjukkan semua gambar Anda.Tekan Ctrldan pilih gambar yang ingin Anda putar atau pilih semuanya melalui Ctrl+ A.
Pada bilah alat, pilih
Tools
dan kemudianRotate Right
atauRotate Left
tergantung pada preferensi Anda.sumber
Solusi yang bagus adalah membuat satu set cadangan (mis. Diawali
backup-
), memutar file asli menghasilkan satu set file baru (misalnya awalanrotated-
), memberi Anda satu setimg-1.png
backup-img-1.png
rotated-img-1.png
img-2.png
Itu
mv
/cp
tools [bash globbing] hanya dapat menambahkan awalan, itu berantakan untuk mengambilnya (itu akan menggunakan ekspansi parameter, ewww ...)The
rename
alat memungkinkan Anda untuk menggunakans/before/after/
sintaks substitusi (darised
alat) untuk swap awalan safeguard dan menimpa file asli, sehingga proses Anda secara keseluruhan untuk satu set gambarimg-
{1..n}.png
akan menjadi:catatan:
cp
daripadamv
, tetapi kemudian ada 2 salinan asli yang tergeletak di sekitar (sisi negatifnya adalah Anda mendapatkan gabungan awalan, "rotated-backup-
...")-rotate 270
membuat Anda 90 ° berlawanan arah jarum jam)echo "Rotating ${imgf#backup-} ... ";
setelahconvert
panggilan (sebelumdone
)untuk bentuk yang lebih ringkas (mis. satu set file bernomor), gunakan beberapa ekspansi parameter seperti
echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";
sebagai gantinya(Anda tidak dapat menghapus awalan dan sufiks dalam ekspansi bash param yang sama maka gunakan
cut
)Kemudian setelah verifikasi Anda tidak mengacaukan, hapus gambar dengan memindahkannya kembali ke aslinya
sumber
Anda dapat menyalin / menempelkan kode ini, dan menyimpannya sebagai
rotate.sh
Setelah menyimpan file ini, jalankan dari terminal menggunakan
./rotate.sh folder_containing_images
.sumber