Java如何给图片加水印
时间: 2023-09-17 16:15:05 浏览: 46
Java 给图片加水印可以使用 Java 的 Graphics2D 类,以下是一个简单的示例:
```java
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Watermark {
public static void main(String[] args) {
try {
// 读取原图片
BufferedImage image = ImageIO.read(new File("original.png"));
// 创建 Graphics2D 对象
Graphics2D g2d = image.createGraphics();
// 设置水印文字的字体、颜色和透明度
Font font = new Font("宋体", Font.BOLD, 30);
g2d.setFont(font);
g2d.setColor(Color.RED);
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.5f));
// 绘制水印文字
String watermark = "watermark";
FontMetrics fontMetrics = g2d.getFontMetrics();
int x = (image.getWidth() - fontMetrics.stringWidth(watermark)) / 2;
int y = (image.getHeight() + fontMetrics.getHeight()) / 2;
g2d.drawString(watermark, x, y);
// 保存加水印后的图片
ImageIO.write(image, "png", new File("watermarked.png"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
```
上述代码中,使用 ImageIO 类读取原图片,然后创建 Graphics2D 对象,设置水印文字的字体、颜色和透明度,并使用 drawString 方法绘制水印文字。最后使用 ImageIO 类保存加水印后的图片。你可以根据需要,自行修改代码来实现更复杂的水印效果。