我正在创建一个网站,需要对网站的画廊中的图片进行水印处理。我希望在图片通过应用程序(通过其Web界面)上传之前,能够以编程方式添加水印,而不是在上传之前手动添加水印。
是否有任何简单的方法(例如图像库),可以让我完成这个任务?
我正在使用Grails构建网站,因此Groovy或Java解决方案将非常好。
我正在创建一个网站,需要对网站的画廊中的图片进行水印处理。我希望在图片通过应用程序(通过其Web界面)上传之前,能够以编程方式添加水印,而不是在上传之前手动添加水印。
是否有任何简单的方法(例如图像库),可以让我完成这个任务?
我正在使用Grails构建网站,因此Groovy或Java解决方案将非常好。
我想这就是你想要的代码...
BufferedImage source = ...;
BufferedImage watermark = ...;
Graphics2D g = source.createGraphics();
g.drawImage(watermark, x, y, null);
g.dispose();
我不确定版权和您的流程是否允许,但另一个建议是在显示图像时呈现水印,而不是在上传时更改图像。这将使您能够更改水印并访问原始图像。
我一直在开发一个Grails应用程序,它需要进行大量的图像处理,我们选择调用ImageMagick。虽然Grails有一个Image Tools插件可以用于简单的水印处理,但是我们需要IM提供的额外功能。
Groovy的Process扩展使得调用IM并解析err/out流变得非常容易。如果我有时间,我会发布一个IM插件,但很抱歉我现在没有时间!
谢谢
李
burningImageService.doWith('path/to/my/file', 'path/to/output/dir')
.execute {
it.watermark('path/to/watermark', ['top':10, 'bottom': 10])
}