ImageMagick 调整水印文件大小并循环溶解

ImageMagick Resize watermark file and dissolve in a loop

ImageMagick: 版本: ImageMagick 7.0.10-6 Q16 x64 2020-04-06

OS:Windows 10 64 位操作系统,基于 x64 的处理器

我没有使用 ImageMagick 的经验,我在尝试创建批处理文件以自动为文件夹中的所有 .jpg 图片添加水印时遇到困难。

想法是 watermarked.png 文件将根据 .jpg 文件尺寸调整大小。 下面的代码运行良好,问题是我试图在水印上应用一定的透明度,但这段代码没有这样做。当我尝试修改代码以使用 -dissolve 或 -watermark 运算符时,我收到了错误消息。

@echo off for %%z in ( *.jpg ) do ( magick "%%z" watermark.png ^ -resize %%[fx:t?u.w:s.w]x%%[fx:t?u.h:s.h] ^ -gravity southeast -composite ./SIGNED/Watermarked_%%z ) pause

下一段代码会自动为文件夹中的所有文件添加水印,并在水印文件上设置一定程度的透明度。但它不会调整 watermark.png.

的大小
@echo off IF NOT EXIST SIGNED mkdir SIGNED FOR %%a in (*.jpg) DO magick composite -dissolve 50%% -gravity southEast (watermark.png  ) %%a ./SIGNED/JG2021_%%a pause

你们知道如何调整水印大小和应用透明度吗? 提前致谢

尝试修改您的示例命令以在像这样读取主图像之前调整水印图像的透明度...

for %%z in ( *.jpg ) do ( magick watermark.png ^
   -channel A -evaluate multiply 0.5 +channel "%%z" +swap ^
   -resize %%[fx:t?u.w:s.w]x%%[fx:t?u.h:s.h] ^
   -gravity southeast -composite ./SIGNED/Watermarked_%%z )

首先将水印读入命令,将通道设置为“A”以仅修改 alpha 通道,并使用 -evaluate multiply 将水印设置为 0.5,即 50% 透明。之后主图像 %z 被读入命令,并使用 +swap 将图像按照正确的顺序进行合成。按照您的示例完成命令。