我正在創建一個網站,要求網站的圖庫中的圖像加水印。當圖像上傳到應用程序時(通過它的網絡界面),我更喜歡在編輯前添加水印,而不是在我們上傳之前手動添加水印。上傳水印圖像
是否有任何簡單的方法(可能是一個圖像庫?),這將允許我這樣做?
我在Grails中構建網站,所以Groovy或Java解決方案將會很棒。
我正在創建一個網站,要求網站的圖庫中的圖像加水印。當圖像上傳到應用程序時(通過它的網絡界面),我更喜歡在編輯前添加水印,而不是在我們上傳之前手動添加水印。上傳水印圖像
是否有任何簡單的方法(可能是一個圖像庫?),這將允許我這樣做?
我在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插件,但我並不後悔!
歡呼
李
ImageMagick的+1。我已經評估了多種圖像處理方法,並發現IM是最好的方法(性能,穩定性和質量)。 還有一個Java的包裝庫:http://im4java.sourceforge.net/ – 2009-10-22 09:55:02
這很簡單,所以我寧願避免引入ImageMagick來做一些我可以在<10 LOC中做的事情。但謝謝你的想法。 – 2009-10-23 01:04:47
創建一個BufferedImage。將上傳的圖像繪製到BufferedImage上,然後將水印繪製到BufferedImage上。
如果您在使用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])
}
好點的水印:不破壞原。但是您不想在每次下載時添加水印,您仍然希望在上載圖像時進行此操作。 – Bombe 2009-10-21 06:59:42