求原图,不要水印相机原图上改时间,不要模糊的,万分感谢

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


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

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

第一个和第四个参数显而易见,第二个和第三个看注释也能看懂当然是对应的坐标轴x轴和y轴了,但是這个坐标轴到底原点在哪呢楼主自己做了一张简单的图片供小伙伴参考,如图:


坐标原点为手机左上角横向向右为X轴正极,纵向向下為Y轴正极这样我们可以计算left及top来设置水印相机原图上改时间的不同位置了,楼主在util中封装了几个常用的位置小伙伴可以查看demo中的代码。

绘制文本问题解决了但是又一个新问题出现了,那就是如何实现多段落显示及段落间的换行我们都知道每部手机的相机像素是不一樣的,如果是把textSize写死的话在不同分辨率的图片上显示效果很差,所以我定义了一个itemCount每行显示的文字数,通过itemCount及图片宽度计算出textSize比如┅部手机拍出的图片宽为1080像素,itemCount为20那么文字大小为54px,根据textSize计算总文本行数并分段把每段文字放在list中,最后遍历List绘制水印相机原图上改時间参考代码如下:

我在最后绘制水印相机原图上改时间时,list中嵌套了一个list外循环用来处理多段落的换行问题,内循环用来处理每个段落中的换行问题所以我在调用绘制文本外部类传值时用的是list而不是string,及list中每个元素为一个段落model如下:

为了优化水印相机原图上改时間,我在水印相机原图上改时间背景处又加了印象效果模拟器拍摄的图片,不美观见谅


背景色的实现方式与水印相机原图上改时间绘制方式大同小异:

我封装了一个helper类用来简化调用:

调用startCapture调用相机拍照并添加水印相机原图上改时间:

暴露的接口有两个都是在相机拍照后調用,选择照片:
//选择照片的uri默认为下标1的元素
 


//拍照后调用,设置水印相机原图上改时间的基本参数
 
具体实现注:txt为空或param为空时不绘淛水印相机原图上改时间





Demo中只支持文本绘制,添加图片的实现方式其实与文字差不多有兴趣的小伙伴可以尝试。我结合了相机及水印相機原图上改时间想单独调用的是可以代码分离的哦,耦合度较低

}

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
采纳数:0 获赞数:5 LV1

你对这个回答的评价是?

百度知道合伙人官方认证企业

三星产品使用咨询服务支持

如需下载第三方应用软件或者好玩嘚游戏及应用建议可以通过自带的应用商店或手机论坛等搜索目前较为热门的软件。若您的手机自带应用商店可以按照如下方式查找:

应用程序-应用商店-点击“热门推荐”可以查看到当前较为热门的软件/游戏。

您也可以按照分类根据软件类型选择自己喜欢的软件

你对這个回答的评价是?

你对这个回答的评价是

}

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
采纳数:0 获赞数:5 LV1

你对这个回答的评价是?

百度知道合伙人官方认证企业

三星产品使用咨询服务支持

如需下载第三方应用软件或者好玩嘚游戏及应用建议可以通过自带的应用商店或手机论坛等搜索目前较为热门的软件。若您的手机自带应用商店可以按照如下方式查找:

应用程序-应用商店-点击“热门推荐”可以查看到当前较为热门的软件/游戏。

您也可以按照分类根据软件类型选择自己喜欢的软件

你对這个回答的评价是?

你对这个回答的评价是

}

我要回帖

更多关于 水印相机原图上改时间 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信