实现可缩放的马赛克控件---Android

需求:实现可以缩放、移动和打马赛克的控件。

由于之前对图片处理的经验很缺乏,所以拿到需求的第一步我就从github上面找相关的项目。

然后,就找到了这个项目:ProMosaic 

这个项目有两个痛点

1.加载图片未处理尺寸,当尺寸过大时,会内存溢出(小问题)

2.未实现缩放功能

正文:

一、ProMosaic实现马赛克原理分析

首先,在内存中有三层Bitmap:

bmBaseLayer  ---- 原图 ,

bmCoverLayer  ---- 将整张原图转成马赛克效果 

bmTouchLayer ---- 记录手指滑过的路径Path

每次手指滑动时,将手指的Path保存下来,并且将所有Path绘制在bmTouchLayer中,然后将bmCoverLayer和bmTouchLayer合并,合并的算法采用的是Xfermode的DST_IN效果(具体Xfermode请自己查询相关内容)。反正最终的结果就是生成一张马赛克图层bmMosaicLayer,这个图层就是要打马赛克的部分。

然后,将bmMosaicLayer绘制在bm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值