java 给图片添加暗水印_给图片添加水印的JAVA实现
时间: 2023-10-14 20:22:41 浏览: 214
Java实现对图片添加水印
给图片添加暗水印的Java实现需要用到Java图像处理库,常用的有Java Advanced Imaging (JAI)和ImageIO。下面提供一种使用ImageIO的实现方式:
```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) throws Exception {
String inputImagePath = "input.jpg";
String outputImagePath = "output.jpg";
String watermarkText = "confidential";
File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);
// 创建一个与原图像相同的新图像
BufferedImage outputImage = new BufferedImage(
inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_INT_RGB);
// 将原图像复制到新图像中
Graphics2D g2d = outputImage.createGraphics();
g2d.drawImage(inputImage, 0, 0, null);
// 添加水印
Font font = new Font("Arial", Font.BOLD, 48);
g2d.setFont(font);
g2d.setColor(Color.BLACK);
AlphaComposite alphaComposite = AlphaComposite.getInstance(
AlphaComposite.SRC_OVER, 0.3f); // 设置水印透明度
g2d.setComposite(alphaComposite);
FontMetrics fontMetrics = g2d.getFontMetrics();
int x = inputImage.getWidth() - fontMetrics.stringWidth(watermarkText) - 50; // 水印位置
int y = inputImage.getHeight() - fontMetrics.getHeight() - 50;
g2d.drawString(watermarkText, x, y);
g2d.dispose();
// 输出图像
File outputFile = new File(outputImagePath);
ImageIO.write(outputImage, "jpg", outputFile);
}
}
```
上述代码中,首先读取一个JPEG格式的输入图像,然后创建一个与原图像大小相同的新图像,将原图像复制到新图像中,再在新图像上添加水印,最后输出新图像。可以根据需要修改字体、水印文本、水印位置等参数。
阅读全文