Java实现图片加水印代码示例

需积分: 10 3 下载量 189 浏览量 更新于2024-09-14 收藏 6KB TXT 举报
"这篇Java代码展示了如何在图片上添加水印。主要涉及到图像处理和Java AWT库的使用。" 在Java中制作图片水印,通常需要利用Java的图形和图像处理API,如`java.awt`和`java.awt.image`包中的类。这段代码的核心功能是将一个带有水印的图片(pressImg)合并到目标图片(targetImg)上,通过设置透明度(alpha)来控制水印的可见度,并指定水印在目标图片上的位置(x,y)。以下是对这段代码的详细解析: 1. 导入必要的库: - `java.awt.*`: 包含了处理基本图形和颜色的类,如`Graphics2D`和`Color`。 - `java.awt.image.*`: 用于处理图像的类,如`BufferedImage`和`ImageIO`。 2. 定义方法pressImage: - 这个方法接受四个参数:水印图片路径、目标图片路径、水印在目标图片上的x坐标和y坐标,以及水印的透明度。 3. 读取目标图片: - 使用`ImageIO.read(new File(targetImg))`从指定路径读取目标图片。 4. 创建BufferedImage对象: - 创建一个新的`BufferedImage`对象,其大小与目标图片相同,类型为`BufferedImage.TYPE_INT_RGB`,用于绘制带有水印的新图片。 5. 绘制目标图片: - 在`BufferedImage`上使用`Graphics2D`的`drawImage()`方法绘制目标图片。 6. 准备水印图片: - 读取水印图片并获取其宽度和高度。 7. 设置水印的透明度: - 使用`AlphaComposite`类的`getInstance()`方法,传入`AlphaComposite.SRC_ATOP`和透明度值,来控制水印与目标图片的混合方式。 8. 绘制水印: - 使用`Graphics2D`的`drawImage()`方法,在目标图片的指定位置绘制水印。这里的`(width-width_biao)/2,(height-height_biao)/2`确保水印居中。 9. 保存结果: - 一旦水印被绘制,结果将保存回`BufferedImage`,但在这个例子中没有显示如何保存结果到文件。通常,你会使用`ImageIO.write()`方法将结果写回到一个新的文件或输出流。 这个代码示例提供了一个基础的图片水印功能,但可以根据需求进行扩展,比如调整水印角度、大小、字体等。此外,为了更完善的错误处理,可以在读取和写入文件时加入异常处理。