📅  最后修改于: 2023-12-03 15:31:58.662000             🧑  作者: Mango
在Java中,我们可以通过图像处理技术对图片进行各种各样的操作。其中,给图片加水印是常见的一种操作,可以用来保护图片版权、标记图片来源等。本文将介绍如何用Java给图片添加文本水印和图片水印。
给图片添加文本水印,需要用到Java中的图像处理库——ImageIO和Graphics2D。下面是一个示例代码,演示如何给一张图片添加文本水印:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Watermark {
public static void addTextWatermark(String inputImagePath,
String outputImagePath,
String text,
Font font,
Color color,
int x,
int y) throws Exception {
// read input image
File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);
// create output image
BufferedImage outputImage = new BufferedImage(inputImage.getWidth(),
inputImage.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = outputImage.createGraphics();
g2d.drawImage(inputImage, 0, 0, null);
// add watermark
g2d.setFont(font);
g2d.setColor(color);
g2d.drawString(text, x, y);
// save output image
File outputFile = new File(outputImagePath);
ImageIO.write(outputImage, "jpg", outputFile);
g2d.dispose();
}
public static void main(String[] args) {
try {
Font font = new Font("Arial", Font.BOLD, 48);
String inputImagePath = "input.jpg";
String outputImagePath = "output.jpg";
String text = "Watermark";
Color color = Color.WHITE;
int x = 20;
int y = 60;
addTextWatermark(inputImagePath, outputImagePath, text, font, color, x, y);
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
}
在此代码中,我们通过addTextWatermark
方法来给输入图片添加文本水印。方法中需要传入输入图片路径、输出图片路径、水印文本、水印字体、水印颜色以及水印位置等参数。具体实现步骤为:
给图片添加图片水印与添加文本水印类似,需要用到Java中的ImageIO和Graphics2D库。下面是一个示例代码,演示如何给一张图片添加图片水印:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Watermark {
public static void addImageWatermark(String inputImagePath,
String outputImagePath,
String watermarkImagePath,
int x,
int y) throws Exception {
// read input image
File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);
// read watermark image
File watermarkFile = new File(watermarkImagePath);
BufferedImage watermarkImage = ImageIO.read(watermarkFile);
// create output image
BufferedImage outputImage = new BufferedImage(inputImage.getWidth(),
inputImage.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = outputImage.createGraphics();
g2d.drawImage(inputImage, 0, 0, null);
// add watermark
g2d.drawImage(watermarkImage, x, y, null);
// save output image
File outputFile = new File(outputImagePath);
ImageIO.write(outputImage, "jpg", outputFile);
g2d.dispose();
}
public static void main(String[] args) {
try {
String inputImagePath = "input.jpg";
String outputImagePath = "output.jpg";
String watermarkImagePath = "watermark.png";
int x = 20;
int y = 60;
addImageWatermark(inputImagePath, outputImagePath, watermarkImagePath, x, y);
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
}
在此代码中,我们通过addImageWatermark
方法来给输入图片添加图片水印。方法中需要传入输入图片路径、输出图片路径、水印图片路径、水印位置等参数。具体实现步骤为:
本文介绍了Java中给图片添加文本水印和图片水印的方法,通过这些技术可以方便地保护图片版权和标记图片来源。值得注意的是,在进行图像处理时,需要注意图片格式和分辨率,以免处理后的图片出现质量问题。