如何在Java中为图像添加水印?

2022-09-04 07:28:29

如何使用Java在图像上创建水印?我需要将用户输入的文本添加到图像上的提供位置。任何示例代码/建议都会有所帮助。


答案 1

缩略图器中,可以使用“标题”图像过滤器向现有图像添加文本标题

// Image to add a text caption to.
BufferedImage originalImage = ...;

// Set up the caption properties
String caption = "Hello World";
Font font = new Font("Monospaced", Font.PLAIN, 14);
Color c = Color.black;
Position position = Positions.CENTER;
int insetPixels = 0;

// Apply caption to the image
Caption filter = new Caption(caption, font, c, position, insetPixels);
BufferedImage captionedImage = filter.apply(originalImage);

在上面的代码中,文本将在等宽字体的中心绘制,前景色为黑色,位于 14 pt。Hello WorldoriginalImage

或者,如果要将水印图像应用于现有图像,则可以使用水印图像过滤器:

BufferedImage originalImage = ...;
BufferedImage watermarkImage = ...;

Watermark filter = new Watermark(Positions.CENTER, watermarkImage, 0.5f);
BufferedImage watermarkedImage = filter.apply(originalImage);

上面的代码将叠加 顶部的 ,以不透明度 50% 为中心。watermarkImageoriginalImage

缩略图器将在普通的旧Java SE上运行 - 不必安装任何第三方库。(但是,需要使用 Sun Java 运行时。

完全披露:我是缩略图的开发人员。


推荐