我正在开发一个需要像 camscanner android 应用程序这样的图像裁剪功能的项目,当拍摄照片并且当用户单击裁剪按钮时,应该在 camscanner 中显示一个矩形覆盖。矩形路径可以拉伸到任何角度并且可以执行裁剪。请帮助我解决问题。
我指的是https://github.com/edmodo/cropper。但这只是带有 4 个点的矩形叠加层。如果有人有链接或解决方案,请帮助我!
我正在开发一个需要像 camscanner android 应用程序这样的图像裁剪功能的项目,当拍摄照片并且当用户单击裁剪按钮时,应该在 camscanner 中显示一个矩形覆盖。矩形路径可以拉伸到任何角度并且可以执行裁剪。请帮助我解决问题。
我指的是https://github.com/edmodo/cropper。但这只是带有 4 个点的矩形叠加层。如果有人有链接或解决方案,请帮助我!
我有类似的需求,我也没有找到任何类似于 CamScanner 的具体解决方案,所以我接受了挑战并实现了一个类似于 CamScanner 的扫描库(在 OpenCV 之上,丰富的图像处理库),可以轻松集成到现有的应用程序中,使用该库,您将能够以任何角度选择精确的边缘,并从选定的 4 个边缘相应地裁剪文档,并更改裁剪图像的透视变换。
Android ScanLibrary 的 Github 链接:https ://github.com/jhansireddy/AndroidScannerDemo
感谢@jhansi 提供了这个神奇的库,但是这个库(Android 扫描仪库)的问题是图像方向总是旋转 90 度,我们可以这样解决。
Kotlin 中的解决方案
在 OnActivityResult 它为您提供位图,您可以将此位图传递给“Bitmap.roate”方法。
像这样使用它: val rotatedBitmap=bitmap.rotate(90f)
imageView.setImageBitmap(rotatedBitmap)
将此方法粘贴到您的活动中:
fun Bitmap.rotate(degrees: Float): Bitmap {
val matrix = Matrix().apply { postRotate(degrees) }
return Bitmap.createBitmap(this, 0, 0, width, height, matrix, true)
}