java图片添加水印实例代码分享

在Java开发中,我们可能需要将水印添加到图片中,以保护图片的版权或者其他需求。下面是Java图片添加水印的完整攻略。

Java图片添加水印实例代码分享

在Java开发中,我们可能需要将水印添加到图片中,以保护图片的版权或者其他需求。下面是Java图片添加水印的完整攻略。

准备工作

在项目中添加以下依赖:

<dependency>
    <groupId>com.github.vividsolutions</groupId>
    <artifactId>jts</artifactId>
    <version>1.14</version>
</dependency>

<dependency>
    <groupId>com.sun.media</groupId>
    <artifactId>jai_codec</artifactId>
    <version>1.1.3</version>
</dependency>

<dependency>
    <groupId>javax.media</groupId>
    <artifactId>jai_core</artifactId>
    <version>1.1.3</version>
</dependency>

添加图片水印

我们可以通过以下代码将图片添加水印:

public static void addWatermark(File watermarkImageFile, File sourceImageFile,
        File destImageFile, int x, int y, float alpha) throws IOException {

    BufferedImage sourceImage = ImageIO.read(sourceImageFile);
    BufferedImage watermarkImage = ImageIO.read(watermarkImageFile);

    Graphics2D g2d = sourceImage.createGraphics();
    AlphaComposite alphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
    g2d.setComposite(alphaComposite);

    g2d.drawImage(watermarkImage, x, y, null);
    g2d.dispose();

    ImageIO.write(sourceImage, "jpg", destImageFile);
}

以上代码中 watermarkImageFile 是要添加的水印图片,sourceImageFile 是要添加水印的图片,destImageFile 是添加水印后保存的图片文件路径,xy 是水印添加的位置坐标, alpha 是水印的透明度,可根据需要进行调整。

以下是示例代码:

File watermark = new File("watermark.png");
File original = new File("original.jpg");
File result = new File("result.jpg");
addWatermark(watermark, original, result, 10, 10, 0.5f);

添加文本水印

我们可以通过以下代码将文本添加到图片中:

public static void addTextWatermark(File sourceImageFile, File destImageFile,
        String text, String fontName, int fontStyle, Color color, int fontSize,
        int x, int y, float alpha) throws IOException {

    BufferedImage sourceImage = ImageIO.read(sourceImageFile);

    Graphics2D g2d = sourceImage.createGraphics();
    AlphaComposite alphaComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
    g2d.setComposite(alphaComposite);

    g2d.setColor(color);
    g2d.setFont(new Font(fontName, fontStyle, fontSize));
    g2d.drawString(text, x, y);

    g2d.dispose();

    ImageIO.write(sourceImage, "jpg", destImageFile);
}

以上代码中 sourceImageFile 是要添加水印的图片,destImageFile 是添加水印后保存的图片文件路径,text 是要添加的文本,fontName 是文本的字体名称,fontStyle 是文本的字体样式(例如 Font.BOLD 表示粗体,Font.ITALIC 表示斜体等),color 是文本颜色, fontSize 是字体大小, xy 是文本添加的位置坐标, alpha 是文本的透明度,可根据需要进行调整。

以下是示例代码:

File original = new File("original.jpg");
File result = new File("result.jpg");
addTextWatermark(original, result, "This is a watermark", "Arial", Font.BOLD, Color.WHITE, 20, 10, 10, 0.5f);

本文标题为:java图片添加水印实例代码分享

基础教程推荐