ImageMagick按比例添加水印

Wil*_*lis 2 overlay watermark imagemagick image-processing

logo.png我想用ImageMagick添加水印nature.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
Run Code Online (Sandbox Code Playgroud)

可以看到,当添加到宽高较大的图像时,水印会变小,但这不是我所期望的,我期望的是水印始终能够占据主图像的固定百分比,有人知道吗这个怎么做?

形象标识

形象标识

原始图像 原始图像

原图已添加水印 原图添加水印

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

nature-50%.jpg添加了水印(中的徽标nature-50%.jpg看起来比原始图像中的大) 原图加水印50%

更新

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

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
Run Code Online (Sandbox Code Playgroud)

旋转水印

Mar*_*ell 7

我会通过加载背景,计算徽标相对于背景的宽度(这里我使用 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
Run Code Online (Sandbox Code Playgroud)

关于更改透明度,根据您的评论,您可以使徽标 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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述