目前,使用ImageMagick,我使用以下watermark.png
在中心picture.jpg
上方使用:
convert -size 700x1300 -composite picture.jpg watermark.png -gravity center -geometry 700x1300 output.jpg
这很好地覆盖了我在图像中间的水印。但是,我想在左上角,中间和右下角实现这种效果。我尝试过组合多个-composite
但没有结果。我想避免调用3个不同的命令以避免它引入的额外开销,但我开始相信它不可能不这样做。
如何在一个命令NorthWest
,Center
和SouthEast
中实现三个水印位置?
答案 0 :(得分:2)
使用“-write mpr:watermark”将水印图像保存在存储器寄存器中,然后将其调用到第二个和第三个复合的命令中。这是一个如何运作的简单例子......
convert watermark.png -write mpr:watermark input.png +swap \
-gravity center -composite mpr:watermark -gravity northwest -composite \
mpr:watermark -gravity southeast -composite output.png
如果需要,在每个复合材料之前设置几何图形,以便从角上为标记添加一些填充。
答案 1 :(得分:1)
在Imagemagick中,有一个重力设置,允许您将水印放在罗盘方向指定的不同位置。见http://www.imagemagick.org/script/command-line-options.php#gravity。但是,您的语法不正确,可能无法与IM 7一起使用。正确的语法是首先读取输入图像。所以你的命令应该是
convert background watermark -gravity center -compose over -composite output
将中心更改为其他重力设置之一,例如西北或东南
你的-size也没有在你的命令中做任何事情。如果你想使用-size WxH xc:somecolor,那么你可以用它来代替背景。
如果要调整大小,请不要使用-geometry。这通常用于抵消重力放置。如果要调整结果大小,请使用-resize WxH。
请参阅 http://www.imagemagick.org/Usage/compose/#compose http://www.imagemagick.org/Usage/layers/#convert
我会略微修改GeeMack的答案,所以它读起来更加对称:
convert watermark.png -write mpr:watermark +delete \
input.png \
mpr:watermark -gravity center -compose over -composite \
mpr:watermark -gravity northwest -compose over -composite \
mpr:watermark -gravity southeast -compose over -composite \
output.png
编辑:跟进OP问题。如果您需要调整水印的大小,请执行
convert watermark.png -resize 700x1300 -write mpr:watermark +delete \
input.png \
mpr:watermark -gravity center -compose over -composite \
mpr:watermark -gravity northwest -compose over -composite \
mpr:watermark -gravity southeast -compose over -composite \
output.png