Android 图片加水印工具类实现

2 下载量 145 浏览量 更新于2024-08-29 收藏 53KB PDF 举报
"Android图片处理-添加文字和图片水印的工具类代码示例" 在Android开发中,有时我们需要对图片进行定制化处理,比如添加文字或图片水印,以实现品牌标识或者版权保护等功能。以下是一个简单的Android工具类`ImageUtil`,它提供了在图片上添加水印的方法。 `ImageUtil`类中定义了两个主要方法,分别用于将水印图片放置在图片的左上角和右下角: 1. `createWaterMaskLeftTop(Context context, Bitmap src, Bitmap watermark, int paddingLeft, int paddingTop)` 这个方法接受一个上下文`Context`、原图片`Bitmap src`、水印图片`Bitmap watermark`以及两个偏移量`paddingLeft`和`paddingTop`。它通过调用`createWaterMaskBitmap`方法来处理图片,并将水印放在左上角。 2. `createWaterMaskBitmap(Bitmap src, Bitmap watermark, int paddingLeft, int paddingTop)` 这个私有方法是实际处理图片的核心。首先,它检查源图片`src`是否为空,如果为空则直接返回`null`。接着,创建一个新的与源图片大小相同的`Bitmap`对象`newb`,并使用`Config.ARGB_8888`配置,确保支持透明度。然后,创建一个`Canvas`对象,使用新`Bitmap`作为画布。在画布上,首先绘制源图片,然后在指定的`paddingLeft`和`paddingTop`位置绘制水印图片。最后,保存并恢复`Canvas`状态,返回处理后的`Bitmap`。 此外,`ImageUtil`类还包含了一个辅助方法`dp2px`,用于将 dp 单位转换为像素值,以便在不同密度的设备上正确地设置水印的位置。 在实际使用时,开发者可以根据需求调整水印的位置、大小以及透明度,只需调用相应的`createWaterMask`方法并传入合适的参数即可。例如,如果想要在图片的右下角添加水印,可以使用`createWaterMaskRightBottom`方法,该方法的实现方式与`createWaterMaskLeftTop`类似,只是调整了水印的位置。 这个工具类简化了Android应用中图片加水印的过程,提高了代码的复用性,使得开发更加高效。但需要注意的是,处理大图片可能会消耗较多内存,因此在实际使用时应考虑性能优化,如使用`BitmapFactory.Options`来控制解码时的内存使用,或者考虑使用异步处理来避免阻塞UI线程。