Java ImageIO实现图片加水印及文字水印的方法

1 下载量 48 浏览量 更新于2024-09-02 收藏 51KB PDF 举报
Java图像处理技术中,对图片添加水印是一项常见的需求,尤其是在电商项目中,为了保护版权或者增加品牌形象,常常需要在商品图片上添加水印。本文档介绍了一个名为`ImageUtil`的Java类,用于实现在图片上添加图片水印和文字水印的功能。 首先,我们来看`ImageUtil`类中的`waterMarkImageByIcon`方法,这是实现图片水印的主要部分。该方法接受五个参数:水印图片路径(`iconPath`)、源图片路径(`srcImgPath`)、目标图片路径(`targerPath`)、水印图片的起始位置(默认为左上角,通过`0,0`表示)以及水印透明度(`0.1f`)。在这个方法中: 1. 首先,通过`ImageIO`库加载源图片(`BufferedImage`类型),这是Java提供的用于操作图像数据的高级接口。 2. 然后,读取指定的水印图片(`ImageIcon`类型)并转换为`BufferedImage`对象。 3. 使用`Graphics2D`对象对目标图片进行操作,这允许我们在图像上绘制图形,包括水印。 4. 设置`Graphics2D`的透明度(`AlphaComposite`)和渲染提示(`RenderingHints`),以便控制水印的透明度和质量。 5. 将水印图片绘制到目标图片的指定位置,并根据给定的角度(这里默认为0,即不旋转)进行定位。 6. 最后,将处理后的图片保存到新的文件(`targerPath`)。 如果需要添加旋转效果,可以通过调用`markImageByIcon`方法,传入旋转角度(例如 `-45` 度),水印图片会按照指定角度旋转后再添加到源图片上。 此外,文档中提到的另一个方法`markImageByIcon`可能是`waterMarkImageByIcon`的一个变体,它接受一个额外的旋转角度参数,表明这个方法可能也支持自定义水印旋转功能。 这个`ImageUtil`类提供了在Java中使用`java.awt`和`javax.imageio`库对图片添加水印的基本工具,适合在商城项目中处理图片水印的需求。开发者可以根据实际场景调整水印的位置、透明度和旋转角度,以满足个性化的设计需求。