我想检查并查看目录中的所有图像是横向还是纵向,如果它们是横向的,则它们是纵向的。旋转后,我想调整图像的大小,使其具有特定的分辨率(每厘米118个点)和水平尺寸(9厘米)。
总结:
我知道识别可以拉尺寸,但我不知道如何拉出单独的高度/宽度值。
基本上,我想这样做:
FILES=/path/to/*
for i in $FILES
identify -format "%f,%w,%h"
do
if [%w -gt %h]
then
convert -rotate 90 $i
mogrify -resize -density ?x? -resolution? -PixelsPerCm $i $i_resized.jpg
done
最终,我想将这些平铺为1m x任何长度文件,以便从绘图仪打印。谢谢!
答案 0 :(得分:3)
也许是这样的?
read f w h < <(identify -format "%f %w %h" "$imagefile")
if (( $w > $h )) ; then
# convert
fi
答案 1 :(得分:1)
图片尺寸似乎是identify
输出中的第三列:
$ identify someimage.jpg
someimage.jpg JPEG 600x450 600x450+0+0 8-bit DirectClass 205KB 0.010u 0:00.009
因此,您可以使用cut
来提取维度:
f_size=$(identify $f | cut -f3 -d' ')
这会给你一些ike 600x450
。有多种方法可以分离这些值。例如:
f_width=${f_size%x*}
f_height=${f_size#*x}
使用-format
参数更容易:
set -- $(identify -format '%w %h')
f_width=$1
f_height=$2