QQ扫一扫联系
在Java中,为图片添加水印并保存通常涉及使用Java的图像处理库,如java.awt和javax.imageio。以下是一个简单的示例,演示如何为图像添加文本水印并保存结果。
首先,确保你有一个原始图片文件(例如original.jpg),以及你希望添加的水印文本。
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class WatermarkExample {
public static void main(String[] args) {
try {
// 读取原始图片
File input = new File("original.jpg");
BufferedImage image = ImageIO.read(input);
// 创建Graphics2D对象以绘制水印
Graphics2D g2d = (Graphics2D) image.getGraphics();
// 设置透明度
AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f);
g2d.setComposite(alphaChannel);
// 设置水印文本的颜色、字体和大小
g2d.setColor(Color.RED);
Font font = new Font("Arial", Font.BOLD, 50);
g2d.setFont(font);
// 计算水印文本的位置
FontMetrics fm = g2d.getFontMetrics();
int x = (image.getWidth() - fm.stringWidth("Watermark Text")) / 2;
int y = image.getHeight() - fm.getHeight() * 2;
// 绘制水印文本
g2d.drawString("Watermark Text", x, y);
// 释放Graphics2D对象
g2d.dispose();
// 保存带有水印的图片
File output = new File("watermarked.jpg");
ImageIO.write(image, "jpg", output);
System.out.println("Watermark added and saved successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个示例中:
使用ImageIO.read方法读取原始图片文件。
创建一个Graphics2D对象,用于在图片上绘制水印。
使用AlphaComposite设置水印的透明度。这里的透明度值为0.5,意味着水印将是半透明的。
设置水印文本的颜色、字体和大小。
计算水印文本在图片上的位置,使其居中显示(或根据需要调整位置)。
使用drawString方法绘制水印文本。
释放Graphics2D对象。
使用ImageIO.write方法将带有水印的图片保存到文件。
请确保将"original.jpg"替换为你的原始图片文件的路径,并将"Watermark Text"替换为你希望添加的水印文本。运行此代码后,你将得到一个名为watermarked.jpg的新文件,其中包含添加的水印。