English | 中文
简单易用的智能图片裁剪库,适用于身份证,名片,文档等照片的裁剪。
- 使用智能算法(基于opencv)识别图片中的边框
- 支持拖动锚点,手动调节选区,放大镜效果提升定位体验
- 使用透视变换裁剪并矫正选区,还原正面图片
- 支持丰富的UI设置,如辅助线,蒙版,锚点,放大镜等
导入对应包名的aar包
注意:由于使用了 JNI, 请不要混淆
-keep class me.pqpo.smartcropperlib.**{*;}
- 在合适的地方初始化(比如在 Application.onCreate):
SmartCropper.init(this);
- 页面销毁时释放资源
SmartCropper.releaseImageDetector(this);
<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 将会报错。
ivCrop.setImageToCrop(selectedBitmap);
该方法内部会使用 native 代码智能识别边框,并绘制图片与选区。在 native 层实现,大大的提高了运行效率,运行时间与图片大小成正比,在大图片的情况下,可以考虑在子线程执行,或者压缩传入的图片。
Bitmap crop = ivCrop.crop();
根据选区裁剪出选区内的图片,并使用透视变换矫正成正面图片。
注意:改方法主要逻辑也是位于 native 层,运行时间与图片大小成正比,在大图片的情况下,可以考虑在子线程执行,或者压缩传入的图片。
name | format | description |
---|---|---|
civMaskAlpha | integer | 选区外蒙版的透明度,取值范围 0-255 |
civShowGuideLine | boolean | 是否显示辅助线,默认 true |
civLineColor | color | 选区线的颜色 |
civLineWidth | dimension | 选区线的宽度 |
civShowMagnifier | boolean | 在拖动的时候是否显示放大镜,默认 true |
civMagnifierCrossColor | color | 放大镜十字准心的颜色 |
civGuideLineWidth | dimension | 辅助线宽度 |
civGuideLineColor | color | 辅助线颜色 |
civPointFillColor | color | 锚点内部区域填充颜色 |
civPointFillAlpha | integer | 锚点内部区域填充颜色透明度 |