Skip to content
MagickCmd › ImageMagick 水印命令生成器

ImageMagick 水印命令生成器

用 ImageMagick 加半透明 logo 水印。角落定位、透明度控制、整图平铺,全部是可直接复制运行的命令。

加水印会逼你学会 ImageMagick 最有用的一个特性:括号子表达式。( … ) 里面的操作只作用于水印,完全不影响底图。

角落半透明 logo

magick input.jpg \
  '(' logo.png -alpha set -channel A -evaluate multiply 0.4 +channel ')' \
  -gravity southeast -geometry +24+24 -composite output.jpg

从左到右读:

  • -alpha set 确保 logo 有 alpha 通道 —— 如果它本来没有的话。
  • -channel A -evaluate multiply 0.4 把这个通道乘以 0.4,得到 40% 不透明度。
  • +channel 取消通道限定。漏写这个是经典 bug —— 后面所有操作都会只动 alpha。
  • -gravity southeast -geometry +24+24 把它放在距右下角 24 像素处。

关于那对括号

括号是 ImageMagick 的语法,不是 shell 的,所以不能让 shell 吃掉。写成 '('')' 在 bash、PowerShell 和 cmd 里都能正常工作 —— 这也是上面的生成器采用这种写法的原因,而不是老教程里那种只适用于 bash 的 \( 转义。

按底图比例缩放水印

固定尺寸的 logo 放在大小不一的图上会很别扭。改成按百分比缩放:

magick input.jpg \
  '(' logo.png -resize 20% -alpha set -channel A -evaluate multiply 0.45 +channel ')' \
  -gravity southeast -geometry +30+30 -composite output.jpg

整图平铺水印

magick input.jpg \
  '(' logo.png -alpha set -channel A -evaluate multiply 0.15 +channel \
      -write mpr:tile +delete ')' \
  '(' +clone -alpha set -tile mpr:tile -draw 'color 0,0 reset' ')' \
  -compose over -composite output.jpg

mpr: 是内存寄存器。水印先处理一次并存进去,然后用它把照片的一个副本整块铺满,最后合成回原图上。透明度要压低 —— 10% 到 20% —— 否则平铺的水印会变成一片看不清的噪点。

只要文字的话

如果你只需要一行版权信息,不用准备 logo 文件,直接看添加文字那一页。那里的技巧是把文字画两遍(先深后浅),这样在明亮天空和暗部阴影上都能看清。

批量加水印

mkdir -p out
for f in *.jpg; do
  magick "$f" '(' logo.png -alpha set -channel A -evaluate multiply 0.4 +channel ')' \
    -gravity southeast -geometry +24+24 -composite "out/$f"
done

关于水印能做到什么,说句实话

角落水印很容易被裁掉,平铺水印也能被现在的图像修复工具消掉相当一部分。水印对「标明出处」和「打消随手盗用的念头」是有用的,但它不是版权保护。在为此牺牲画面质量之前,值得先想清楚你到底要的是哪一个。


相关页面

Copied