java给图片添加水印
时间: 2023-10-08 20:05:53 浏览: 93
Java给图片加水印
要在Java中给图片添加水印,可以使用Java的Graphics2D类来实现。下面是一个简单的示例代码:
```java
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Watermark {
public static void main(String[] args) throws IOException {
File inputFile = new File("input.jpg");
BufferedImage inputImage = ImageIO.read(inputFile);
// 创建一个带有透明度的图片,用于绘制水印
BufferedImage watermarkImage = new BufferedImage(inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
// 获取Graphics2D对象,用于绘制水印
Graphics2D g2d = watermarkImage.createGraphics();
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
g2d.setColor(Color.WHITE);
g2d.setFont(new Font("Arial", Font.BOLD, 30));
String watermarkText = "Watermark";
FontMetrics fontMetrics = g2d.getFontMetrics();
int x = (inputImage.getWidth() - fontMetrics.stringWidth(watermarkText)) / 2;
int y = (inputImage.getHeight() - fontMetrics.getHeight()) / 2;
g2d.drawString(watermarkText, x, y);
g2d.dispose();
// 把水印图片叠加到原图上
Graphics2D g2dInput = inputImage.createGraphics();
g2dInput.drawImage(watermarkImage, 0, 0, null);
g2dInput.dispose();
// 保存图片
File outputFile = new File("output.jpg");
ImageIO.write(inputImage, "jpg", outputFile);
}
}
```
在上面的代码中,我们首先读取了一个名为`input.jpg`的图片,然后创建了一个透明度为0.5的带有水印文字的BufferedImage对象,并使用Graphics2D类的drawString()方法将水印文字绘制在该对象上。接着,我们将水印图片叠加到原图上,并保存输出为`output.jpg`。
阅读全文