上传时加水印图像

时间:2009-10-21 02:32:15

标签: java grails image-manipulation watermark

我正在创建一个网站,要求网站图库中的图像加水印。我希望在图像上传到应用程序(通过它的网络界面)时以编程方式添加水印,而不是在我们上传之前手动添加水印。

是否有任何简单的方法(也许是图像库?)可以让我这样做?

我正在使用Grails构建网站,因此Groovy或Java解决方案会很棒。

5 个答案:

答案 0 :(得分:5)

这是你想要的代码......

BufferedImage source = ...;
BufferedImage watermark = ...;
Graphics2D g = source.createGraphics();
g.drawImage(watermark, x, y, null);
g.dispose();

答案 1 :(得分:3)

我不确定版权和您的流程是否允许,但另一个建议是在显示图像时渲染水印而不是在上传时更改图像。这样您就可以更改水印并访问原始图像。

答案 2 :(得分:1)

我一直在研究Grails应用程序,它执行大量图像处理,我们选择调用ImageMagick。 Grails有一个Image Tools插件可能适合简单的水印,但我们需要IM提供的额外功能。

Groovy的Process添加使得调用IM然后解析err / out流非常容易。如果我有时间发布IM插件,但我不抱歉!

欢呼声

答案 3 :(得分:1)

创建BufferedImage。将上传的图像绘制到BufferedImage,然后将水印绘制到BufferedImage。

答案 4 :(得分:0)

如果您使用的是grails,我认为最简单的方法是添加水印或调整图像大小以使用burningimage插件 https://grails.org/plugin/burning-image

它非常易于使用且记录良好。在这里找到文档: https://code.google.com/p/burningimage/

对于简单的水印,您必须执行以下操作

burningImageService.doWith('path/to/my/file', 'path/to/output/dir')
               .execute {
                   it.watermark('path/to/watermark', ['top':10, 'bottom': 10])
                }