智能图片裁剪框架。自动识别边框,手动调节选区,使用透视变换裁剪并矫正选区;适用于身份证,名片,文档等照片的裁剪

SmartCropper

项目地址:pqpo/SmartCropper 

简介:? A library for cropping image in a smart way that can identify the border and correct the cropped image. 智能图片裁剪框架。自动识别边框,手动调节选区,使用透视变换裁剪并矫正选区;适用于身份证,名片,文档等照片的裁剪。

更多:作者   提 Bug   官网   

标签:

图片边框识别-

English | 中文

简单易用的智能图片裁剪库,适用于身份证,名片,文档等照片的裁剪。 如果觉得还不错,欢迎 star,fork。

你也可以关注我的另一个库 SmartCamera: SmartCamera 是一个 Android 相机拓展库,能够实时采集并且识别相机内物体边框是否吻合指定区域。

支持特性

  • 使用智能算法(基于 opencv)识别图片中的边框
  • 支持拖动锚点,手动调节选区,放大镜效果提升定位体验
  • 使用透视变换裁剪并矫正选区,还原正面图片
  • 支持丰富的 UI 设置,如辅助线,蒙版,锚点,放大镜等

例子(传送门

1. 选择图片后智能选区,使用透视变换裁剪并矫正选区:

 

2. 拖动锚点,手动调节选区,右上角放大镜效果方便拖拽定位:

gif 动画:

 

接入

1.根目录下的 build.gradle 添加:

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
}

2.添加依赖

dependencies {
      compile 'com.github.pqpo:SmartCropper:v1.2.3@aar'
}

注意:由于使用了 JNI, 请不要混淆

-keep class me.pqpo.smartcropperlib.**{*;}

使用

1. 裁剪布局:

<me.pqpo.smartcropperlib.view.CropImageView   
        android:id="@+id/iv_crop"  
        android:layout_width="match_parent" 
        android:layout_height="match_parent" />

注意: CropImageView 继承至 ImageView,但是 ScaleType 必须为居中类型,如果手动设置成 fit_end,fit_start,matrix 将会报错。

2. 设置待裁剪图片:

ivCrop.setImageToCrop(selectedBitmap);

该方法内部会使用 native 代码智能识别边框,并绘制图片与选区。在 native 层实现,大大的提高了运行效率,运行时间与图片大小成正比,在大图片的情况下,可以考虑在子线程执行,或者压缩传入的图片。

3. 裁剪选区内的图片:

Bitmap crop = ivCrop.crop();

根据选区裁剪出选区内的图片,并使用透视变换矫正成正面图片。

注意:改方法主要逻辑也是位于 native 层,运行时间与图片大小成正比,在大图片的情况下,可以考虑在子线程执行,或者压缩传入的图片。

Attributes

nameformatdescription
civMaskAlphainteger选区外蒙版的透明度,取值范围 0-255
civShowGuideLineboolean是否显示辅助线,默认 true
civLineColorcolor选区线的颜色
civLineWidthdimension选区线的宽度
civShowMagnifierboolean在拖动的时候是否显示放大镜,默认 true
civMagnifierCrossColorcolor放大镜十字准心的颜色
civGuideLineWidthdimension辅助线宽度
civGuideLineColorcolor辅助线颜色
civPointFillColorcolor锚点内部区域填充颜色
civPointFillAlphainteger锚点内部区域填充颜色透明度

Features

  • [x] 优化点排序算法
  • [x] CropImageView 选区放大镜效果
  • [x] CropImageView xml 属性配置
  • [ ] 优化智能选区算法
  • [ ] 欢迎提 ISSUE

关于我:

  • 邮箱: pqponet@gmail.com
  • GitHub: pqpo
  • 博客: pqpo's notes
  • Twitter: Pqponet
  • 微信公众号: pqpo_me(扫下方二维码)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值