首页 > 解决方案 > 使用 Imagemagick,在图像外部添加水印,例如。批量使用填充?

问题描述

我正在尝试在图像外部添加水印,首先创建一个填充位置。

我的 imagemagick 命令:

for pic in DSC*.*; do convert -background black -extent 0%x0%+0+100 $pic ${pic//.*}-padded.jpg; done

for pic in DSC*padded.*;  do composite -dissolve 100% -gravity SouthEast watermark.png $pic ${pic//.*}-marked.jpg; done

示例文件名:

“DSC_5568.JPG、DSC_5568 - DSC_5588_fused.jpg....等”

标签: imagemagickpaddingwatermark

解决方案


你真的应该提供样本输入和预期的输出图像,但我认为你想要这个:

convert INPUT.JPG -background black -extent 0%x0%+0+100 -gravity southeast watermark.png -compose dissolve -composite RESULT.JPG

您可能需要添加以下内容-define

... watermark.png -define compose:args=100 -compose dissolve -composite ...

If that works, I would make a COPY of all your files in a spare directory and do the whole lot in parallel with GNU Parallel:

parallel 'convert {} -background black -extent 0%x0%+0+100 -gravity southeast watermark.png -compose dissolve -composite {.}-marked.jpg' ::: *.jpg

Or, if you prefer a simple bash for loop:

for f in DSC* ; do
   convert "$f" -background black -extent 0%x0%+0+100 -gravity southeast watermark.png -compose dissolve -composite "${f//.*}-marked.jpg"
done

推荐阅读