java 在jpg上添加文字水印
时间: 2024-09-14 18:12:19 浏览: 29
在Java中给JPG图片添加文字水印通常涉及以下步骤:
1. 加载图片:使用`BufferedImage`类来加载你想要添加水印的JPG图片。
2. 创建Graphics2D对象:通过`BufferedImage`对象创建一个`Graphics2D`对象,这个对象可以用来在图片上进行绘制操作。
3. 设置画笔和字体:配置`Graphics2D`对象的画笔颜色、字体样式和大小等属性。
4. 绘制文字水印:使用`Graphics2D`对象的`drawString`方法在图片上的指定位置绘制文字。
5. 保存图片:将带有水印的图片保存为一个新的JPG文件或覆盖原文件。
以下是一个简单的示例代码:
```java
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class WatermarkImage {
public static void addTextWatermark(String inputImagePath, String outputImagePath, String text, int fontSize, Color fontColor) throws IOException {
// 加载图片
BufferedImage bufferedImage = ImageIO.read(new File(inputImagePath));
Graphics2D g2d = bufferedImage.createGraphics();
try {
// 设置水印字体及颜色
g2d.setFont(new Font("宋体", Font.BOLD, fontSize));
g2d.setColor(fontColor);
// 设置透明度
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f));
// 绘制水印文本
FontMetrics metrics = g2d.getFontMetrics();
int x = (bufferedImage.getWidth() - metrics.stringWidth(text)) / 2;
int y = (bufferedImage.getHeight() - metrics.getHeight()) / 2 + metrics.getAscent();
g2d.drawString(text, x, y);
} finally {
// 释放资源
g2d.dispose();
}
// 保存图片
File outputFile = new File(outputImagePath);
ImageIO.write(bufferedImage, "jpg", outputFile);
}
public static void main(String[] args) {
try {
addTextWatermark("path/to/input/image.jpg", "path/to/output/image.jpg", "水印文字", 20, Color.WHITE);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```