我正在开发一个需要像camscanner android应用程序一样的图像裁剪功能的项目,当拍摄照片时,当用户点击裁剪按钮时,矩形覆盖应该显示在camscanner中。矩形路径可以拉伸到任何角度,并可以执行crop.please帮助我解决方案。
我指的是https://github.com/edmodo/cropper。但这只是4个点的矩形覆盖。如果任何人有链接或解决方案,请帮助我!!
答案 0 :(得分:35)
我有类似的要求,我也没有找到类似于CamScanner的具体解决方案,所以我接受了挑战并实施了类似于CamScanner的扫描库(在OpenCV之上,丰富的图像处理库)它可以很容易地集成到现有的应用程序中,使用该库,您可以选择任意角度的精确边缘,并相应地从选定的4个边缘裁剪文档,并更改裁剪图像的透视变换。
Android ScanLibrary的Github链接:https://github.com/jhansireddy/AndroidScannerDemo
答案 1 :(得分:0)
感谢@jhansi提供这个出色的库,但是该库(Android Scanner Library)的问题是图像方向始终旋转90度,我们可以像这样解决它。
科特林解决方案
在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)
}