Android中拍照完就给图片加水印,Android调用相机拍照并添加水印

最近项目提出新需求,要求在拍照后在图片上添加用户信息的水印,so,楼主重新整理封装了一个简单的拍照+水印的工具类,需求不同,仅供参考。文件操作及权限做了适配,支持androidN及以上版本,放心使用。

效果演示:

23cacaf04d52c35741a7e6ad1c736753.png

如何调用相机这里就不介绍了,因为小伙伴们基本都使用过,主要介绍下实现水印的方式,实现水印效果也很简单,利用paint及canvas操作bitmap在对应位置进行绘制文本即可,首先定义画笔,设置水印颜色、大小及文本:

Paint paint = newPaint(Paint.ANTI_ALIAS_FLAG);paint.setColor(color);paint.setTextSize(size);Rect bounds = newRect();paint.getTextBounds(text,0,text.length(),bounds);

定义好画笔后新建canvas对bitmap进行绘制,这里应该注意的是在Android代码里是不允许直接修改Bitmap资源文件,如果不copy一份的话会抛异常

Caused by: java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor

绘制代码如下:

Bitmap.Config bitmapConfig = bitmap.getConfig();paint.setDither(true);// 获取跟清晰的图像采样paint.setFilterBitmap(true);// 过滤一些if(bitmapConfig == null) {

bitmapConfig = Bitmap.Config.ARGB_8888;}

bitmap = bitmap.copy(bitmapConfig, true);Canvas canvas = newCanvas(bitmap);canvas.drawText(text,paddingLeft,paddingTop,paint);

我们看下drawText的源码

/*** Draw the text, with origin at (x,y), using the specified paint. The* origin is interpreted based on the Align setting in the paint.**@paramtextThe text to be drawn*@paramxThe x-coordi

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值