我有一大堆 jpg 图像,我想为其创建缩略图。这些图像都有不同的尺寸和分辨率,但我希望所有缩略图都有标准尺寸,例如120x80 像素。但是,我不想拉伸图像。所以我想做以下一些事情:
- 将图像裁剪为 1.5 : 1 的宽高比。将裁剪区域居中(即左右、上下等量剪掉)
- 将图像大小调整为 120 x 80 像素。
linux 有没有命令可以做到这一点?我研究了 imagemick Convert,但我不知道如何进行居中裁剪。看来每张图片都要手动指定裁剪区域?
这适用于大于 120x80 的图像。尚未在较小的设备上进行测试,但您应该能够对其进行调整。
#! /bin/bash
for img in p*.jpg ; do
identify=$(identify "$img")
[[ $identify =~ ([0-9]+)x([0-9]+) ]] || \
{ echo Cannot get size >&2 ; continue ; }
width=${BASH_REMATCH[1]}
height=${BASH_REMATCH[2]}
let good_width=height+height/2
if (( width < good_width )) ; then # crop horizontally
let new_height=width*2/3
new_width=$width
let top='(height-new_height)/2'
left=0
elif (( width != good_width )) ; then # crop vertically
let new_width=height*3/2
new_height=$height
let left='(width-new_width)/2'
top=0
fi
convert "$img" -crop "$new_width"x$new_height+$left+$top -resize 120x80 thumb-"$img"
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)