使用 Imagemagick,在图像外部添加水印,例如。批量使用填充?

Using Imagemagick, add watermark outside the image eg. using padding, in bulk?

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

我的 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.... etc."

我找到了如何处理我所有的图像文件,在指定的文件名上使用“”。

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

您确实应该提供示例输入和预期的输出图像,但我认为您需要这个:

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 ...

如果可行,我会 COPY 您的所有文件 在备用目录中 并同时执行所有操作GNU 并行:

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

或者,如果您更喜欢简单的 bash for 循环:

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