使用GraphicsMagick在文本/图像上应用水印

时间:2014-01-08 13:55:20

标签: image-processing imagemagick graphicsmagick

我需要能够使用文字或其他图像在图像上应用水印。 使用以下命令使其与图像一起使用非常简单:

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工作,但我宁愿避免使用管道,因为它会引起一些令人头疼的问题,从Java管理它。

我认为我可以做的是从给定文本生成图像,然后使用该图像作为logo.png用于我的第一个命令。虽然我找不到如何用文本生成图像,但我发现只是将文本放在图像上。

理想情况下,我会生成带有文本的透明图像,从我看到的修改字体/颜色等应该非常灵活。

欢迎任何关于如何实现这一目标的建议,或任何更好的解决方案。 (我添加了imagemagick标签,因为接口通常是相同/相似的)

2 个答案:

答案 0 :(得分:5)

我不确定我是否完全理解你的查询,如果我误解了,那么道歉,但是你是否想要创建一个透明的图像,角落里有一些文字?如果是这样,这不起作用吗?

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编写的

P.S。 。我不知道GM是如何不同的,或者它是否仍然有用。

答案 1 :(得分:1)

为了能够将水印文本放到同一图像中,我必须使用 -annotate 参数。

因此,Moogle's代码段在我的案例中看起来像这样:

convert original_image.jpg -background transparent -fill grey -font Calibri -size 140x80 -pointsize 14 -gravity southeast -annotate +0+0 'copyright text' output.jpg
相关问题