Java图片添加水印图片

在进行图片处理时,有时候我们需要在图片上添加水印,以保护图片的版权或加入一些个性化信息。Java提供了丰富的图像处理库,可以轻松实现图片添加水印的功能。本文将介绍如何使用Java实现图片添加水印的功能,并提供相应的代码示例。

1. 图片处理库介绍

在Java中,有多个图像处理库可供选择,其中一些流行的库包括:

  • [Java 2D API]( 2D API是Java平台上的底层图像处理库,提供了对图像的基本操作和绘制功能。
  • [Apache Commons Imaging]( Commons Imaging是一个开源的图像处理库,提供了对多种图像格式的读取和写入支持,并提供了一些图像处理的辅助功能。
  • [Thumbnailator](
  • [Imgscalr](

本文将使用Java 2D API来实现图片添加水印的功能。

2. 添加文字水印

我们首先来介绍如何通过Java代码在图片上添加文字水印。下面的代码示例演示了如何使用Java 2D API来实现这个功能:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class TextWatermarkExample {
    public static void main(String[] args) {
        try {
            // 读取原始图片
            File originalImage = new File("path/to/original/image.jpg");
            BufferedImage image = ImageIO.read(originalImage);

            // 创建一个新的图片,大小与原始图片相同
            BufferedImage watermarkedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);

            // 在新图片上绘制原始图片
            Graphics2D g2d = (Graphics2D) watermarkedImage.getGraphics();
            g2d.drawImage(image, 0, 0, null);

            // 添加文字水印
            String watermarkText = "Sample Watermark";
            Font font = new Font("Arial", Font.BOLD, 36);
            g2d.setColor(Color.WHITE);
            g2d.setFont(font);
            g2d.drawString(watermarkText, 20, 50);

            // 保存水印图片
            File outputImage = new File("path/to/output/image.jpg");
            ImageIO.write(watermarkedImage, "jpg", outputImage);

            System.out.println("水印图片已保存。");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上述代码使用了Java 2D API来读取原始图片,并创建一个新的图片作为水印图片。然后,我们通过Graphics2D对象在新图片上绘制原始图片,并添加文字水印。最后,我们将带有水印的图片保存到指定的路径。

3. 添加图片水印

除了文字水印,我们也可以在图片上添加另一张图片作为水印。下面的代码示例展示了如何通过Java代码在图片上添加图片水印:

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

public class ImageWatermarkExample {
    public static void main(String[] args) {
        try {
            // 读取原始图片
            File originalImage = new File("path/to/original/image.jpg");
            BufferedImage image = ImageIO.read(originalImage);

            // 读取水印图片
            File watermarkImage = new File("path/to/watermark/image.png");
            BufferedImage watermark = ImageIO.read(watermarkImage);

            // 创建一个新的图片,大小与原始图片相同
            BufferedImage watermarkedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);

            // 在新图片上绘制原始图片
            Graphics2D g2d = (Graphics2D) watermarkedImage.getGraphics();
            g2d.drawImage(image, 0, 0, null);

            // 添加图片水印