如何使用 ImageMagick 的命令行实用程序裁剪多个图像,以便删除它们底部的水印?
语境
我为我的家人建立了一个个人网站,我在那里发布我们的照片。一名家庭成员用手机拍了几张照片。每张照片上都有以下文字:日期、手机所有者的姓名、手机型号。我想在将照片发布到网上之前裁剪照片以剪掉这些信息。
这些信息位于照片的底部,并且在每张照片中占据相同的高度,因此我需要编写如下脚本:
watermarkheight=20 # just a an example
for photo in *.jpg; do
dimensions=$(identify $photo | awk '{ print $3 }') # it will be like 600x400, width X height
height=${dimensions#*x}
width=${dimensions%x*}
newheight=$(( height - watermarketheight ))
# i need help with line below
someCommandToCropTheHeight --width $width --height $height --file $photo
done
我需要知道的是如何使用mogrify
或等命令convert
从照片中剪切“水印”。
任何帮助表示赞赏
答案1
你可以使用 ImageMagick 的-劈选项结合-重力设置从每个图像的底部删除 20px。
要将裁剪后的图像保存在目录中results
,您可以运行:
mkdir -p results
watermarkheight=20
for photo in *.jpg; do
convert "$photo" -gravity South -chop 0x"$watermarkheight" ./results/"$photo"
done
有关的:
- 砍伐、去除行、列和边缘(ImageMagick v6 示例 - 切割和边框)