Java 实现图片指定位置的水印1。整个过程
为了实现在 Java 我们可以按照以下步骤操作图片指定位置加水印的功能:
- 加载原始图片和水印图片;
- 创建新图片,并在新图片上绘制原始图片;
- 在新图片上绘制水印图片,并指定位置;
- 保存新图片。
下面将详细介绍每一步要做的事情,并提供相应的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()
该方法加载了原始图片和水印图片,并分别存储在中originalImage
和watermarkImage
变量中。
接下来,我们需要创建一个新的图片,并在新的图片上绘制原始图片。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()
该方法将原始图片绘制到新图片上。
现在,我们需要在新图片上绘制水印图片,并指定它们的位置。具体代码如下:
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(); }
