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图片添加水印实例代码分享 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • java微信公众号开发第一步 公众号接入和access_token管理

    下面我将详细讲解Java微信公众号开发中,公众号接入和access_token管理的完整攻略。 公众号接入 公众号接入是指将你的微信公众号与微信平台进行绑定,以便在微信平台上管理和运营你的公众号。以下是接入的具体步骤: 步骤一:注册微信公众号和开发者账号 要进行公众号接入,首先需要注册一个微信公众号,并且在微信公众平台上注册一个开发者账号。 步骤二:认证公众…

    Java 2023年5月26日
    00
  • JAVA ArrayList详细介绍(示例)

    下面是关于“JAVA ArrayList详细介绍(示例)”的完整攻略。 ArrayList介绍 在Java中,ArrayList是一个动态数组,可以根据需要动态地扩展其大小。与Java数组不同,在ArrayList中,项目的插入和删除时无需移动其他项目。ArrayList类在内部使用一个数组来存储它的元素,它的大小通过构造函数在创建时确定,如果在添加时元素的…

    Java 2023年5月26日
    00
  • JSP静态导入与动态导入使用详解

    JSP静态导入与动态导入使用详解 1.什么是JSP导入 在JSP页面中,我们经常需要调用其他Java类中的方法或属性。为了方便起见,JSP提供了导入功能。 2. 静态导入 静态导入是在JSP页面中导入Java中的某个类中的静态属性或方法。 2.1 静态导入语法 <%@ page import="static java.lang.Math.*&…

    Java 2023年6月15日
    00
  • 详解Java的MyBatis框架中动态SQL的基本用法

    下面是详解Java的MyBatis框架中动态SQL的基本用法的完整攻略。 MyBatis中动态SQL的基本用法 MyBatis是Java中使用的一种持久化框架,它提供了许多强大的功能,其中动态SQL是其中之一。动态SQL可以根据传入的参数不同,生成不同的SQL语句,非常适用于开发灵活的应用程序。接下来我们就来详细讲解如何在MyBatis中使用动态SQL。 条…

    Java 2023年5月20日
    00
  • JSP实现浏览器关闭cookies情况下的会话管理

    JSP实现浏览器关闭cookies情况下的会话管理,可以采用以下方法: 将Session ID添加到URL中 这种方法是在每个被访问的页面的URL中加入Session ID参数。在JSP中,可以通过session对象的getId()方法获取Session ID,并将其添加到URL中。如果cookie被禁用,浏览器将自动以GET形式传递Session ID参数…

    Java 2023年6月15日
    00
  • JAVA之String中删除指定字符方式(11种方法)

    JAVA字符串中删除指定字符的11种方法 在JAVA编程中,经常需要处理字符串,其中常见的操作之一就是删除指定字符。下面将介绍11种常用的删除指定字符的方法。 方法1:使用replace方法替换指定字符 可以使用String类的replace方法,将要删除的字符替换成空字符串: public static String deleteChar(String s…

    Java 2023年5月27日
    00
  • Java操作Excel的示例详解

    Java操作Excel的示例详解 在 Java 工程中,对 Excel 进行操作是一个比较常见的需求。下面将会详细讲解如何使用 Java 操作 Excel 文档。 前置条件 在开始操作 Excel 文件前,需要先将相应的依赖项添加到 Maven 或 Gradle 项目中: Maven 在 pom.xml 文件中添加以下依赖项: <dependency&…

    Java 2023年5月20日
    00
  • Java实现的简单音乐播放器功能示例

    下面我将为你讲解“Java实现的简单音乐播放器功能示例”的完整攻略。 需求分析 在实现一个音乐播放器之前,首先要明确该播放器需要实现哪些功能。可以列出以下需求: 能够载入音乐文件并播放。 能够停止、暂停播放。 提供音量调节功能。 提供进度调节功能。 能够显示正在播放的音乐文件名和剩余时间。 能够自动切换下一首歌曲。 实现步骤 创建一个主窗口,并添加播放器控制…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部