ImageMagick ile görüntüleri çeşitli yönlerden birine göre yeniden boyutlandırma


2

ImageMagick ile işlediğim bir bash betiğinde bir koleksiyonum var. Bir klasördeki resimlerin üzerine döner. Çoğu 3: 2 formatında, ancak bazıları 4: 3, 2: 1 ve 1: 1. Bununla birlikte, hepsi mizanpaj oranlarına mükemmel şekilde kırpılmamış, yerleşim sorunlarına neden olmuşlardır. 3.01: 2 olan bir resmim varsa, 3: 2'ye zorlanmasını istiyorum.

Şu anda aşağıdaki resize komutunu kullanıyorum. Daha önce, 3: 2 zorla doldurmak için ölçeklendirme ve kırpma kullanmıştım, ancak bu, görüntüleri diğer en boy oranlarıyla yanlış şekilde kırpıyor.

convert -resize 300x200

Görüntüleri yeniden boyutlandırmak ve sığdırmak için boyut listesinin en yakınına zorlamak istiyorum. Piksel boyutlarını veya (tercihen) en boy oranlarını tanımlama konusunda iyiyim.

Bunu bash betiğinde bir araya getirdim, bu da bana, eğer bir çek olup olmadığını gösteren bir dizi söyleyememe karşı test edebileceğim bir şey elde etti. $ Dosya adının başka bir yerden geldiğini unutmayın:

aspect=$(ffmpeg -i "_originals/$filename"*.jpg 2>&1 | egrep -o "DAR ([0-9]+:[0-9]+)" | cut -f2 -d " " | sed 's/:/ /')
ratio=$(echo $aspect |awk '{printf "%.2f", $1/$2}')
printf "$ratio\n"

X / Y boyutunu okumak, oranı hesaplamak ve bir seçimle eşleştirmek için bir şeyler kullanın.
Seth

Evet, kabaca benim peşimde olacağım şey olurdu. Ama birlikte zincirlemeye nasıl devam edeceğimi bilmiyorum. Bazı hesaplamaları okumak ve sonra yapmak için exiftool sanırım?
Henrik,

Ayrıca MAN sayfasını da kullanabilirsiniz identify, böylece kullanılabilir. Görüntü boyutu gerçekten exif bilgisinin bir parçası değil, bildiğim çoğu formatta görüntü yapısının temelini oluşturuyor.
Seth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.