Dave,
OK, the same script below works for the the other aspect ratio,
namely 130x180. I have tested it on images of sizes 600x390 (wider
than tall - aspect=1.53846), 256x256 (square - aspect=1) and 400x520
(tall than wide - aspect=.76923 and aspect=.69230) for the cases of
daspect=180/130=1.38461 and daspect=130/180=.72222. Note that I
added/moved +repage just after $infile and just before $outfile to be
sure that the virtual canvas was reset/removed from the infile and
before creating the outfile; otherwise, things do not work out if the
virtual canvas is not exactly the size of the input image.
#!/bin/bash
infile="your_infile"
outfile="your_outfile"
dwidth=130 # desired thumbnail width
dheight=180 #desired thumbnail height
width=`identify -format "%w" $infile` # actual image width
height=`identify -format "%h" $infile` # actual image height
aspect=`echo "scale=5; $width / $height" | bc` # actual image aspect
ratio
daspect=`echo "scale=5; $dwidth / $dheight" | bc` # desired
thumbnail aspect ratio
test1=`echo "$aspect > $daspect" | bc` # returns 1 if true and 0 if false
test2=`echo "$aspect >= 1" | bc` # returns 1 if true and 0 if false
if [ $test1 -eq 1 ]
then
echo "aspect larger than desired aspect (wider than tall)"
resize="${dheight}x${dheight}^"
elif [ $test2 -eq 1 ]
then
echo "aspect less than desired aspect (wider than tall) but
greater than 1"
resize="${dwidth}x${dwidth}"
else
echo "aspect less than 1 (taller than wide)"
resize="${dwidth}x${dwidth}^"
fi
convert $infile +repage -resize $resize \
-gravity Center -crop ${dwidth}x${dheight}+0+0 +repage $outfile
Note the use of the ^ in cases 1 and 3
I will try to make a proper script of this over the next few days and
add it to my script page.
Fred
_______________________________________________
Magick-users mailing list
[email protected]
http://studio.imagemagick.org/mailman/listinfo/magick-users