当前位置: 首页 > 图灵资讯 > 技术篇> java 图片指定位置加水印

java 图片指定位置加水印

来源:图灵教育
时间:2024-02-02 13:22:04

Java 实现图片指定位置的水印1。整个过程

为了实现在 Java 我们可以按照以下步骤操作图片指定位置加水印的功能:

  1. 加载原始图片和水印图片;
  2. 创建新图片,并在新图片上绘制原始图片;
  3. 在新图片上绘制水印图片,并指定位置;
  4. 保存新图片。

下面将详细介绍每一步要做的事情,并提供相应的Java代码来实现。

第二,具体步骤1. 加载原始图片和水印图片

首先,我们需要加载要添加水印的原始图片和水印图片。Java提供ImageIO类加载图片,具体代码如下:

import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class Main {    public static void main(String[] args) {        try {            // 加载原始图片            BufferedImage originalImage = ImageIO.read(new File("original.jpg"));            // 加载水印图片            BufferedImage watermarkImage = ImageIO.read(new File("watermark.png"));            // 后续步骤在这里进行...        } catch (IOException e) {            e.printStackTrace();        }    }}

我们使用上述代码ImageIO.read()该方法加载了原始图片和水印图片,并分别存储在中originalImagewatermarkImage变量中。

2. 创作新图片,绘制原始图片

接下来,我们需要创建一个新的图片,并在新的图片上绘制原始图片。Java提供BufferedImage类来操作图片,具体代码如下:

import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class Main {    public static void main(String[] args) {        try {            // 加载原始图片和水印图片...            // 创建新图片            BufferedImage newImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_RGB);            // 获取新图片的绘图对象            Graphics2D graphics = newImage.createGraphics();            // 在新图片上绘制原始图片            graphics.drawImage(originalImage, 0, 0, null);            // 后续步骤在这里进行...        } catch (IOException e) {            e.printStackTrace();        }    }}

我们使用上述代码BufferedImage构造函数创建了与原始图片大小相同的新图片,并使用它newImage.createGraphics()获取新图片的绘图对象的方法graphics。然后,我们用它graphics.drawImage()该方法将原始图片绘制到新图片上。

3. 绘制水印图片,指定位置

现在,我们需要在新图片上绘制水印图片,并指定它们的位置。具体代码如下:

import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class Main {    public static void main(String[] args) {        try {            // 加载原始图片和水印图片...            // 创造新的图片和绘图对象...            // 绘制水印图片,指定位置            int watermarkX = newImage.getWidth() - watermarkImage.getWidth();            int watermarkY = newImage.getHeight() - watermarkImage.getHeight();            graphics.drawImage(watermarkImage, watermarkX, watermarkY, null);            // 后续步骤在这里进行...        } catch (IOException e) {            e.printStackTrace();        }    }}

在上述代码中,我们通过计算水印图片的位置,将水印图片绘制到新图片的右下角。

4. 保存新图片

最后,我们需要将添加水印的新图片保存到当地。具体代码如下:

import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class Main {    public static void main(String[] args) {        try {            // 加载原始图片和水印图片...            // 创造新的图片和绘图对象...            // 绘制水印图片,指定位置...            // 保存新图片            File outputFile = new File("output.jpg");            ImageIO.write(newImage, "jpg", outputFile);            System.out.println("完成水印添加!");        } catch (IOException e) {            e.printStackTrace();        }