java给图片添加水印
时间: 2023-10-14 22:11:36 浏览: 40
以下是Java给图片添加水印的示例代码:
```
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class AddWatermark {
public static void main(String[] args) {
try {
// 读取图片
BufferedImage originalImage = ImageIO.read(new File("original.jpg"));
// 创建一个带有透明度的图片
BufferedImage watermarkedImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
// 获取Graphics2D对象
Graphics2D g2d = (Graphics2D) watermarkedImage.getGraphics();
// 绘制原始图片
g2d.drawImage(originalImage, 0, 0, null);
// 设置水印透明度
AlphaComposite alphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f);
g2d.setComposite(alphaComposite);
// 设置水印字体
Font font = new Font("Arial", Font.BOLD, 36);
g2d.setFont(font);
// 设置水印颜色
g2d.setColor(Color.BLACK);
// 设置抗锯齿
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 绘制水印
String watermark = "© My Watermark";
int x = watermarkedImage.getWidth() - g2d.getFontMetrics().stringWidth(watermark) - 20;
int y = watermarkedImage.getHeight() - 20;
g2d.drawString(watermark, x, y);
// 保存文件
ImageIO.write(watermarkedImage, "png", new File("watermarked.png"));
// 释放资源
g2d.dispose();
System.out.println("Watermark added successfully!");
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
以上代码使用了Java的ImageIO和Graphics2D类来读取、处理和保存图片。它首先读取原始图片,然后创建一个带有透明度的图片,并在其上绘制水印。在绘制水印时,它使用了透明度、字体、颜色和抗锯齿等设置。最后,它将水印添加到原始图片中,并保存为新的文件。