使用Java给图片打水印的流程如下:
步骤 | 说明 |
---|---|
步骤1 | 加载原始图片 |
步骤2 | 创建水印图片 |
步骤3 | 打开原始图片的画布 |
步骤4 | 在画布上绘制水印图片 |
步骤5 | 保存绘制水印后的图片 |
下面是每一步的具体操作及代码示例:
步骤1:加载原始图片
首先,我们需要加载原始图片。在Java中,可以使用ImageIO
类的read
方法来读取图片文件,并将其转换为BufferedImage
对象。
BufferedImage originalImage = ImageIO.read(new File("original-image.jpg"));
步骤2:创建水印图片
接下来,我们需要创建水印图片。水印图片可以是一段文字、一个logo等。在这个例子中,我们以文字水印为例,使用Graphics2D
类绘制文字,并将其保存为BufferedImage
对象。
BufferedImage watermarkImage = new BufferedImage(200, 50, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = watermarkImage.createGraphics();
graphics.setColor(Color.RED);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Watermark", 10, 30);
graphics.dispose();
步骤3:打开原始图片的画布
接下来,我们需要打开原始图片的画布,并获取画布上的Graphics2D
对象。然后,我们可以在画布上绘制水印图片。
Graphics2D g = originalImage.createGraphics();
步骤4:在画布上绘制水印图片
在画布上绘制水印图片时,我们可以使用Graphics2D
对象的drawImage
方法。通过指定水印图片的位置和大小,将水印绘制到原始图片的指定位置。
g.drawImage(watermarkImage, 10, 10, 200, 50, null);
步骤5:保存绘制水印后的图片
最后,我们需要将绘制水印后的图片保存到文件中。可以使用ImageIO
类的write
方法将BufferedImage
对象保存为图片文件。
ImageIO.write(originalImage, "jpg", new File("watermarked-image.jpg"));
完整代码示例:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageWatermarkExample {
public static void main(String[] args) throws Exception {
// 步骤1:加载原始图片
BufferedImage originalImage = ImageIO.read(new File("original-image.jpg"));
// 步骤2:创建水印图片
BufferedImage watermarkImage = new BufferedImage(200, 50, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = watermarkImage.createGraphics();
graphics.setColor(Color.RED);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Watermark", 10, 30);
graphics.dispose();
// 步骤3:打开原始图片的画布
Graphics2D g = originalImage.createGraphics();
// 步骤4:在画布上绘制水印图片
g.drawImage(watermarkImage, 10, 10, 200, 50, null);
// 步骤5:保存绘制水印后的图片
ImageIO.write(originalImage, "jpg", new File("watermarked-image.jpg"));
}
}
以上就是使用Java实现给图片打水印的步骤和代码示例。通过加载原始图片、创建水印图片、打开画布、绘制水印图片以及保存绘制水印后的图片,我们可以实现给图片添加水印的功能。希望这篇文章能够帮助到你!