简单易用的智能图片裁剪库,适用于身份证,名片,文档照等裁剪。 欢迎 start,follow。
- 基于 opencv 智能识别边框
- 支持拖动锚点,手动调节选区
- 透视变换裁剪选区,还原裁剪区域
下载Demo:传送门
可以直接依赖 aar 文件夹下的 aar 文件,也可以 clone 项目,将 smartcropperlib 作为 Android 模块导入。之后有需要的话可以上传到仓库。
另外根目录 libs 目录下是编译好的 native library,如果引入项目不想编译,可以直接使用。
注意:不要混淆
<me.pqpo.smartcropperlib.view.CropImageView
android:id="@+id/iv_crop"
android:layout_width="match_parent"
android:layout_margin="20dp"
android:layout_height="0dp"
android:layout_weight="1"/>
Point[] points = SmartCropper.scan(selectedBitmap);
在 native 层智能识别边框,返回的 points 是大小为4的数组,表示选区边框的四个顶点,依次为左上,右上,右下,左下。
ivCrop.setCropPoints(points);
ivCrop.setImageBitmap(selectedBitmap);
将选区顶点,需要显示的图片设置给 CropImageView 显示图片,绘制选区。
Bitmap crop = ivCrop.crop();
根据选区,使用透视变换裁剪出选区内的区域图片。
public static Point[] scan(Bitmap srcBmp)
返回值为大小为4的 Point 数组,表示选区边框的四个顶点,依次为左上,右上,右下,左下。
public static Bitmap crop(Bitmap srcBmp, Point[] cropPoints)
public void setCropPoints(Point[] cropPoints)
public void setMaskAlpha(int mMaskAlpha)
public void setShowGuideLine(boolean showGuideLine)
public void setLineColor(int lineColor)
public void setLineWidth(int lineWidth)
public Bitmap crop()
public Bitmap crop(Point[] points)
- 优化智能选区算法
- CropImageView 选区放大镜效果
- ...
如有问题可联系:pqponet#gmail.com, 也可提 ISSUE。
我的博客:https://pqpo.me
Copyright 2017 pqpo
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.