基于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的,不要问我怎么用,我只能告诉你,谷歌官方文档真好用。

箭头

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

直接上图吧

(图来源于网络哈)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容