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"
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.