基于canvas画布,Android图片编辑库,实现的一款图片轻量级编辑框架,目前支持涂鸦、马赛克、剪裁、文字等功能,支持Android11

废话不多说,直接上图

 

使用

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
dependencies {
	        implementation 'com.github.OneZeroYang:EditImage:1.1.0'
	}

 

详细使用方法见github

 

原理

代码细节我就不体现了,直接说点核心吧,大家都知道,可以通过Canvas绘制view
先创建一个Bitmap
  val bitmap = Bitmap.createBitmap(
    Math.round(frame.width()),
    Math.round(frame.height()), Bitmap.Config.ARGB_8888
    )
在创建一个Canvas 并传入这个 Bitmap
 val canvas = Canvas(bitmap)
我们拿到canvas,就可以像绘制自定义view一样得去绘制Bitmap,最后我们再将这个Bitmap返回,就可以得到我们编辑好的图片,至于怎么去绘制自定义view,我相信网上都是烂大街了,那我就简单得讲讲:

涂鸦

我们在开发自定义view的时候,相信大家都知道有个东西叫path,他可以绘制路径,我们在触摸屏幕的时候,会触发onTouchEvent,这个时候我们就可以获取到相应的时间,从而的到路径,这不就绘制出来了吗?马赛克也是同样的道理,只是设置了不同的画笔风格而已,不在赘复。

剪裁、旋转

我们可以在图片的上层绘制一个剪裁框,完全可以通过计算,来确实用户得到用户选择的一些相关参数,例如位置,大小,最后通过矩阵进行相关的剪裁就好,旋转也是有相关api的,不要问我怎么用,我只能告诉你,谷歌官方文档真好用。

 

基于canvas画布,Android图片编辑库,实现的一款图片轻量级编辑框架,目前支持涂鸦、马赛克、剪裁、文字等功能,支持Android11_第1张图片

基于canvas画布,Android图片编辑库,实现的一款图片轻量级编辑框架,目前支持涂鸦、马赛克、剪裁、文字等功能,支持Android11_第2张图片

箭头
​​​​​​


文字我就不说了,往自定义控件里面add一个view或者直接add一个TextView,箭头我是通过path来实现的,我们可以根据两个手指之间的距离,来得到箭头的长度、方向(角度)

直接上图吧

基于canvas画布,Android图片编辑库,实现的一款图片轻量级编辑框架,目前支持涂鸦、马赛克、剪裁、文字等功能,支持Android11_第3张图片

(图来源于网络哈)

 

 

 

 

你可能感兴趣的:(Android开发,android,java,android,studio,kotlin)