如何在 Java 中为图像添加水印?
如何使用 Java 在图像上创建水印?我需要将用户输入的文本添加到图像上提供的位置。任何示例代码/建议都会有帮助。
How can I create a watermark over an image using Java? I need user-entered text to be added to a provided position over an image. Any sample code/suggestions will help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
在 Thumbnailator 中,可以使用
Caption
图像过滤器:在上面的代码中,文本
Hello World
将绘制在originalImage
的中心位置等宽字体,前景色为黑色,字体大小为 14 pt。或者,如果要将水印图像应用于现有图像,可以使用
Watermark
图像过滤器:上面的代码会将
watermarkImage
叠加在originalImage
,居中,不透明度为 50%。Thumbnailator 将在普通的旧式 Java SE 上运行——无需安装任何第三方库。 (但是,需要使用 Sun Java 运行时。)
全面披露:我是 Thumbnailator 的开发人员。
In Thumbnailator, one can add a text caption to an existing image by using the
Caption
image filter:In the above code, the text
Hello World
will be drawn on centered on theoriginalImage
with a Monospaced font, with a black foreground color, at 14 pt.Alternatively, if a watermark image is to be applied to an existing image, one can use the
Watermark
image filter:The above code will superimpose the
watermarkImage
on top of theoriginalImage
, centered with an opacity of 50%.Thumbnailator will run on plain old Java SE -- one does not have to install any third party libraries. (However, using the Sun Java runtime is required.)
Full disclosure: I am the developer for Thumbnailator.
您可以查看 http://web.archive.org/web/20080324030029/http://blog.codebeach.com/2008/02/watermarking-images-in-java -servlet.html
或者您可以使用 GIF4J 库 http://www.gif4j.com/java-gif4j-pro-gif-image-watermark.htm#gifimagewatermarkapply
You can have a look to the "Drawing the Watermark" section of http://web.archive.org/web/20080324030029/http://blog.codebeach.com/2008/02/watermarking-images-in-java-servlet.html
Or you may use the GIF4J library http://www.gif4j.com/java-gif4j-pro-gif-image-watermark.htm#gifimagewatermarkapply
我最近有类似的需求,发现这篇文章相当有用:
http://www.codeyouneed.com/java-watermark-image/
水印该方法使用 ImgScalr 在需要时调整水印大小,并支持将文本放置在图像 + 水印图像的底部/顶部。
为了选择正确的位置,它使用一个简单的 ENUM
整个水印逻辑都在这个方法中:
计算水印大小的相应方法是:
再次强调,所有积分均归于 http://www.codeyouneed.com/java-watermark-image/ 是一个很好的示例。
I had a similar need recently and found this post rather useful:
http://www.codeyouneed.com/java-watermark-image/
The watermark method there uses ImgScalr for resizing the watermark when needed and supports placing text in the bottom / top of the image + the watermark image.
For choosing the correct placement it uses a simple ENUM
And the whole watermarking logic is in this method:
And the corresponding methods for calculating the watermark size is:
Again, all credits to http://www.codeyouneed.com/java-watermark-image/ for a nice sample.
我在我的项目中使用了 IM4Java 库 - 用于 java 的 imagemagick 包装器。有关水印示例,请参阅 http://www.imagemagick.org/Usage/annotating/
I used for my projects IM4Java library - imagemagick wrapper for java. For watermarking example see http://www.imagemagick.org/Usage/annotating/
使用这个代码,它有效..
此处,图像用作水印并放置在位置 10,10
use this code, it works..
here, an image is used as a watermark and is place at location 10,10
下面是在任何图像上添加水印的代码
}
Below is the code to add water mark on any image
}
在 Windows 中的 C:\Imagemagick 文件夹中安装 Imagemagick
首先使用http://www.imagemagick.org/download/binaries/ImageMagick-6.8.8-7-Q16-x86-dll.exe
安装时添加 C:\ImageMagick;在 PATH 环境变量中
并使用下面的代码
}
First intall Imagemagick in C:\Imagemagick folder in windows using
http://www.imagemagick.org/download/binaries/ImageMagick-6.8.8-7-Q16-x86-dll.exe
while installation add C:\ImageMagick; in PATH enviornment variable
and use below code
}