4

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

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

我在 Grails 中构建站点,所以 Groovy 或 Java 解决方案会很棒。

4

5 回答 5

5

我认为这是您想要的代码...

BufferedImage source = ...;
BufferedImage watermark = ...;
Graphics2D g = source.createGraphics();
g.drawImage(watermark, x, y, null);
g.dispose();
于 2009-10-21T05:41:43.443 回答
3

我不确定版权和您的流程是否允许,但另一种建议是在显示图像时呈现水印,而不是在上传时更改图像。这将允许您更改水印并访问原始图像。

于 2009-10-21T03:06:27.670 回答
1

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

Groovy 的进程添加使得调用 IM 并解析错误/输出流变得非常容易。如果我有时间我会发布一个 IM 插件,但我不抱歉!

干杯

于 2009-10-21T03:29:59.900 回答
1

创建一个缓冲图像。将上传的图片绘制到 BufferedImage 中,然后将水印绘制到 BufferedImage 中。

于 2009-10-21T03:41:31.767 回答
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])
                }
于 2015-04-09T11:27:50.870 回答