ImageMagick按比例添加水印

ImageMagick add watermark proportionally

我想用 ImageMagick 添加水印 logo.pngnature.jpg,我使用以下命令:

magick nature.jpg logo.png -gravity southeast -geometry +10+10 -composite nature-wm.jpg
convert nature.jpg -resize 50% nature-50%.jpg
magick nature-50%.jpg logo.png -gravity southeast -geometry +10+10 -composite nature-50%-wm.jpg

如你所见,在宽高较大的图片上添加水印后水印变小了,但这不是我所期望的,我所期望的是水印总是能占据固定的比例主图,有人知道怎么做吗?

徽标图片

原图

原图加水印

原图宽度和高度的50%(nature-50%.jpg)

nature-50%.jpg加了水印(nature-50%.jpg中的logo比原图大)

更新

我想旋转水印,但是我的做法不是我想要的,很奇怪

magick nature.jpg -set option:logowidth "%[fx:int(w*0.25)]" \
\( logo.png -resize "%[logowidth]x" -rotate 45 \)                       \
-gravity southeast -geometry +10+10 -composite result.jpg

我会加载背景,计算徽标相对于背景的宽度(这里我使用 0.25 作为因子),然后加载徽标并在合成前调整大小:

magick background.jpg -set option:logowidth "%[fx:int(w*0.25)]" \
   \( logo.png -resize "%[logowidth]x" \)                       \
   -gravity southeast -geometry +10+10 -composite result.jpg

关于更改透明度,根据您的意见,您可以像这样使徽标不透明 30%:

magick background.jpg -set option:logowidth "%[fx:int(w*0.25)]" \( logo.png -resize "%[logowidth]x" -channel A -fx "u*0.3" \) -gravity southeast -geometry +10+10 -composite result.jpg