使用GraphicsMagick添加文字/图像水印

8

我需要能够在图片上应用水印,可以使用文本或另一张图片。对于图片的处理比较简单,可以使用以下命令:

gm composite -dissolve 15 -tile logo.png image.jpg wmark_tiled.jpg

现在,我也想能够在其他情况下使用文本作为水印。我找到的与此最接近的是ImageMagick教程中的以下命令:

convert -size 140x80 xc:none -fill grey -gravity NorthWest -draw "text 10,10 'copyrigh text'" -gravity SouthEast -draw "text 5,15 'copyright text'" miff:- | gm composite -tile - image.jpg copyrightImage.jpg 

尽管它在GM中无效,而且我也想避免使用pipe,因为这会导致从Java中管理它时出现一些问题。 我想我可以做的是从给定的文本生成一个图像,然后使用该图像作为我的第一个命令中使用的logo.png。虽然我找不到如何从文本生成图像的方法,所有我找到的都是将文本放在图像上方。 理想情况下,我将生成一个带有文本的透明图像,并且据我所见,修改字体/颜色等应该非常灵活。 欢迎提出任何关于如何实现此操作或任何更好解决方案的建议。(我添加了imagemagick标签,因为它们的接口通常相同/相似)
2个回答

9

很抱歉,如果我理解有误,请您指出。根据您的描述,您想创建一个透明图片,并在角落里添加一些文字,是这样吗?如果是的话,以下方式是否可行?

convert -background transparent -fill grey -font Calibri -size 140x80 -pointsize 14 -gravity southeast label:'copyright text' output.png

显然,需要调整字体、字号、输出图片名称等。这将创建以下内容: http://oi42.tinypic.com/14j1bvp.jpg 附注:这是针对ImageMagick编写的。我不知道GM有何区别或是否仍可使用。

我只需要将文本放在一个透明图像的中间,然后将该图像平铺在另一个图像上方。您提供的命令可以实现这一点,谢谢。 - Giannis

5
为了将水印文字与同一图像合并,我必须使用-annotate参数。因此,在我的情况下,Moogle的代码片段如下所示:
convert original_image.jpg -background transparent -fill grey -font Calibri -size 140x80 -pointsize 14 -gravity southeast -annotate +0+0 'copyright text' output.jpg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接