我正在创建一个网站,要求网站图库中的图像加水印。我希望在图像上传到应用程序(通过它的网络界面)时以编程方式添加水印,而不是在我们上传之前手动添加水印。
是否有任何简单的方法(也许是图像库?)可以让我这样做?
我正在使用Grails构建网站,因此Groovy或Java解决方案会很棒。
答案 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])
}