Ubah ukuran gambar ke nilai ketinggian tertentu di ImageMagick?

27

Saya sudah mencari-cari ini, dan tidak dapat menemukan solusi yang mudah diimplementasikan.

Saat ini saya sedang mengerjakan aplikasi yang berhubungan dengan panorama. Ketika mereka keluar dari proses penjahitan, dimensi rata-rata 18000x4000. Dengan menggunakan ImageMagick, bagaimana saya bisa menurunkan gambar-gambar tersebut ke nilai ketinggian tertentu sambil mempertahankan rasio aspek?

Menurut manual, convertoperasi membutuhkan ketinggian dan lebar untuk mengubah ukuran tetap mempertahankan rasio aspek yang sama. Yang saya inginkan adalah memasukkan 600 dan 1000 pada fungsi skrip ukuran saya yang sudah ada dan memiliki gambar yang dapat dilihat secara teratur serta ukuran yang dikurangi.

Jason
sumber
IIRC menggunakan dimensi yang lebih kecil sebagai basis untuk operasi pengubahan ukuran, yaitu jika Anda menentukan sesuatu seperti 20000x600, ia akan menggunakan ketinggian 600 sebagai basis untuk menghitung lebar yang dikonversi sehingga mempertahankan rasio aspek. Apakah saya sudah jelas?
devius
Apakah itu perlu ImageMagick? Perintah Phatch dapat dituliskan, perintah 'fit' melakukan apa yang Anda cari. photobatch.wikidot.com/action-fit
Veazer

Jawaban:

37

Menurut dokumentasi ImageMagick saya sarankan untuk menggunakan -geometry x600, sedangkan x600berarti gambar baru memiliki ketinggian 600 px dengan rasio aspek yang sama dengan gambar lama.


Untuk satu gambar, Anda dapat menjalankan:

convert input.png -geometry x600 output.png

Jika Anda memilih untuk mengonversi semua gambar folder dalam satu kali jalan, alihkan ke sana (mis. cd ~/Pictures/panoramas/) Dan gunakan

mogrify -geometry x600 *.png

Tapi hati-hati dengan itu, karena menimpa file gambar asli . Untuk menghindari itu Anda bisa

  1. buat folder baru ( mkdir ~/Pictures/panoramas/small)
  2. salin gambar ke folder ini ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small) dan
  3. edit gambar di folder baru ini ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png).
Jakob
sumber
1

untuk mengubah ukuran semua file dalam folder, bisa menggunakan sesuatu seperti

mogrify -ukuran 800x1094! * jpg # menjaga rasio aspek gambar

--- ubah ukuran dan ekstensi sesuai kebutuhan


sumber
1
Ini tidak mempertahankan rasio aspek dari gambar sumber
Rob
1
@Rob jika kamu ingin menjaga aspek ransum, tinggalkan "!" di luar.
Erick
Terima kasih @Erick, sudah cukup tua tapi saya cenderung menunjukkan bahwa jawaban ini tidak menjawab dengan benar karena OP ingin mempertahankan rasio aspek. : D
Rob