Round images to width and heights divisible by 2, by cropping

Alec Jacobson

November 10, 2012

weblog/

To make an h264 movie from a bunch of images using ffmpeg I need all the images to have size dimensions divisible by two. Here's a little one-liner to crop a bunch of images to the nearest size divisible by 2:
for file in *.png; do convert -crop `identify -format "(%[fx:w]/2)*2" $file | bc`x`identify -format "(%[fx:h]/2)*2" $file | bc`+0+0 $file cropped_$file; done
I suppose using mogrify would potentially be faster. But I'm not sure how to introduce the rounding.