Java 图片视频添右下角加水印
在数字媒体中,水印是一种常见的版权保护手段。它通常被添加到图片或视频的某个角落,以表明所有权或来源。在Java中,我们可以使用一些库来实现图片和视频的水印功能。本文将介绍如何使用Java为图片和视频添加右下角水印。
流程图
以下是整个流程的流程图:
flowchart TD
A[开始] --> B[创建水印文本]
B --> C[获取图片或视频]
C --> D[创建水印图像]
D --> E[将水印图像添加到图片或视频的右下角]
E --> F[保存处理后的图片或视频]
F --> G[结束]
类图
以下是涉及的类的类图:
classDiagram
class Watermark {
+String text
+int x
+int y
+int opacity
+Color color
+Font font
+Image image
+Graphics2D g2d
}
class ImageProcessor {
+Image image
+void addWatermark(Watermark watermark)
}
class VideoProcessor {
+File videoFile
+void addWatermark(Watermark watermark)
}
Watermark -- ImageProcessor : "添加水印"
Watermark -- VideoProcessor : "添加水印"
代码示例
以下是为图片添加右下角水印的代码示例:
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class WatermarkExample {
public static void main(String[] args) {
try {
File inputFile = new File("input.jpg");
File outputFile = new File("output.jpg");
BufferedImage inputImage = ImageIO.read(inputFile);
ImageProcessor imageProcessor = new ImageProcessor(inputImage);
Watermark watermark = new Watermark();
watermark.text = "Copyright © 2023";
watermark.x = inputImage.getWidth() - watermark.text.length() * 10;
watermark.y = inputImage.getHeight() - 30;
watermark.opacity = 0.5f;
watermark.color = new Color(0, 0, 0, watermark.opacity);
watermark.font = new Font("Arial", Font.BOLD, 20);
imageProcessor.addWatermark(watermark);
ImageIO.write(imageProcessor.getImage(), "jpg", outputFile);
System.out.println("水印添加成功!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("水印添加失败!");
}
}
}
class Watermark {
public String text;
public int x;
public int y;
public float opacity;
public Color color;
public Font font;
public Image image;
public Graphics2D g2d;
public void draw(Graphics2D g2d) {
this.g2d = g2d;
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opacity));
g2d.setColor(color);
g2d.setFont(font);
g2d.drawString(text, x, y);
}
}
class ImageProcessor {
private BufferedImage image;
public ImageProcessor(BufferedImage image) {
this.image = image;
}
public void addWatermark(Watermark watermark) {
Graphics2D g2d = image.createGraphics();
watermark.draw(g2d);
g2d.dispose();
}
public BufferedImage getImage() {
return image;
}
}
结尾
通过上述代码示例,我们可以看到Java为图片添加水印的过程相对简单。通过创建Watermark
类和ImageProcessor
类,我们可以轻松地将水印添加到图片的右下角。同样的方法也可以应用于视频水印的添加。虽然本文没有提供视频水印的代码示例,但原理是相同的。希望本文对您有所帮助,让您能够更好地了解如何在Java中为图片和视频添加水印。