行业资讯 Java:实现为图片添加水印并保存

Java:实现为图片添加水印并保存

87
 

在Java中,为图片添加水印并保存通常涉及使用Java的图像处理库,如java.awtjavax.imageio。以下是一个简单的示例,演示如何为图像添加文本水印并保存结果。

首先,确保你有一个原始图片文件(例如original.jpg),以及你希望添加的水印文本。

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
 
public class WatermarkExample {
 
    public static void main(String[] args) {
        try {
            // 读取原始图片
            File input = new File("original.jpg");
            BufferedImage image = ImageIO.read(input);
 
            // 创建Graphics2D对象以绘制水印
            Graphics2D g2d = (Graphics2D) image.getGraphics();
 
            // 设置透明度
            AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f);
            g2d.setComposite(alphaChannel);
 
            // 设置水印文本的颜色、字体和大小
            g2d.setColor(Color.RED);
            Font font = new Font("Arial", Font.BOLD, 50);
            g2d.setFont(font);
 
            // 计算水印文本的位置
            FontMetrics fm = g2d.getFontMetrics();
            int x = (image.getWidth() - fm.stringWidth("Watermark Text")) / 2;
            int y = image.getHeight() - fm.getHeight() * 2;
 
            // 绘制水印文本
            g2d.drawString("Watermark Text", x, y);
 
            // 释放Graphics2D对象
            g2d.dispose();
 
            // 保存带有水印的图片
            File output = new File("watermarked.jpg");
            ImageIO.write(image, "jpg", output);
 
            System.out.println("Watermark added and saved successfully!");
 
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在这个示例中:

  1. 使用ImageIO.read方法读取原始图片文件。

  2. 创建一个Graphics2D对象,用于在图片上绘制水印。

  3. 使用AlphaComposite设置水印的透明度。这里的透明度值为0.5,意味着水印将是半透明的。

  4. 设置水印文本的颜色、字体和大小。

  5. 计算水印文本在图片上的位置,使其居中显示(或根据需要调整位置)。

  6. 使用drawString方法绘制水印文本。

  7. 释放Graphics2D对象。

  8. 使用ImageIO.write方法将带有水印的图片保存到文件。

请确保将"original.jpg"替换为你的原始图片文件的路径,并将"Watermark Text"替换为你希望添加的水印文本。运行此代码后,你将得到一个名为watermarked.jpg的新文件,其中包含添加的水印。


更新:2025-02-26 09:49:24 © 著作权归作者所有
QQ
微信
客服