我有这个 BASH 脚本,可以缩放水印图像:
#!/bin/bash
echo "Which file to watermark?"
read -e "filetowatermark"
echo "Which file to use as watermark?"
read -e "watermarkfile"
convert "$filetowatermark" "$watermarkfile" +distort affine "0,0 0,0 %[w],%[h] %[fx:t?v.w*(u.h/v.h*0.05):s.w],%[fx:t?v.h*(u.h/v.h*0.05):s.h]" -shave 1 -gravity southeast -geometry +200+200 -compose hard-light -composite "$filetowatermark"-signed.png
该脚本基于此:http://www.imagemagick.org/discourse-server/viewtopic.php?t=34883。
有没有办法给水印图像最大尺寸,例如 40 px 的高度?
答案1
您可以通过先转换水印文件然后使用调整大小的水印文件来确保水印文件不大于 40px。
#!/bin/bash
echo "Which file to watermark?"
read -e "filetowatermark"
echo "Which file to use as watermark?"
read -e "watermarkfile"
convert "$watermarkfile" -resize 40x200\> "small$watermarkfile"
convert "$filetowatermark" "small$watermarkfile" +distort affine "0,0 0,0 %[w],%[h] %[fx:t?v.w*(u.h/v.h*0.05):s.w],%[fx:t?v.h*(u.h/v.h*0.05):s.h]" -shave 1 -gravity southeast -geometry +200+200 -compose hard-light -composite "$filetowatermark"-signed.png
rm "small$watermarkfile"
我没有测试该脚本。变化是:
- 水印文件已调整大小
- 使用调整大小的水印
- 调整大小的水印随后被删除
我在这里找到了调整大小的解决方案:https://stackoverflow.com/questions/40007722/resize-with-imagemagick-with-a-maximal-width-height