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


在 Java 编程中,可以使用 java.awtjavax.imageio 包中的类来处理图片。以下是一个示例代码,展示如何为图片添加文字水印并保存图片。

一、代码实现

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ImageWatermark {
    public static void addWatermark(String imagePath, String outputPath, String watermarkText) {
        try {
            // 读取图片
            BufferedImage image = ImageIO.read(new File(imagePath));

            // 创建一个新的图像对象
            BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = newImage.createGraphics();

            // 绘制原始图像
            g2d.drawImage(image, 0, 0, null);

            // 设置水印字体
            Font font = new Font("Arial", Font.BOLD, 24);
            g2d.setFont(font);

            // 设置水印颜色
            Color color = new Color(255, 255, 255, 128); // 白色透明文字
            g2d.setColor(color);

            // 设置绘制质量
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

            // 获取图片大小
            int width = image.getWidth();
            int height = image.getHeight();

            // 文字水印位置
            int x = width - 200; // 距离右边 200 像素
            int y = height - 50; // 距离底部 50 像素

            // 绘制水印文字
            g2d.drawString(watermarkText, x, y);

            // 关闭绘图上下文
            g2d.dispose();

            // 保存图片
            ImageIO.write(newImage, "JPEG", new File(outputPath));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 输入图片路径
        String imagePath = "input.jpg";
        // 输出图片路径
        String outputPath = "output.jpg";
        // 水印文字
        String watermarkText = "Sample Watermark";

        // 添加水印
        addWatermark(imagePath, outputPath, watermarkText);
    }
}

二、代码解析

  1. 读取图片:使用 ImageIO.read 方法读取输入图片。
  2. 创建新图像对象:创建一个 BufferedImage 对象,用于处理图片。
  3. 绘制原始图像:将原始图像绘制到新的图像对象上。
  4. 设置水印字体:使用 Font 类设置水印文字的字体样式和大小。
  5. 设置水印颜色:使用 Color 类设置水印文字的颜色和透明度。
  6. 绘制水印文字:使用 Graphics2D.drawString 方法将水印文字绘制到图片的指定位置。
  7. 保存图片:使用 ImageIO.write 方法将处理后的图片保存到文件。

三、运行步骤

  1. 准备一张图片,保存为 input.jpg
  2. 将上述代码保存为 ImageWatermark.java
  3. 编译并运行代码:
    javac ImageWatermark.java
    java ImageWatermark
    
  4. 检查输出文件 output.jpg,确保水印已正确添加。

四、注意事项

  • 图片格式:确保输入图片格式为 JPG 或 PNG。
  • 水印位置:可以通过调整 xy 的值来改变水印的位置。
  • 水印透明度:通过调整 Color 的透明度值(第四位参数),可以使水印更透明。

通过以上代码,你可以在 Java 中轻松实现为图片添加水印的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java皇帝

有帮助就赏点吧,博主点杯水喝喝

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值