我正在开发一个项目,需要像CamScanner安卓应用程序一样的图片裁剪功能。当用户拍照并单击裁剪按钮时,应显示一个矩形覆盖层,就像CamScanner一样。矩形路径可以延伸到任意角度并执行裁剪。请帮助我找到解决方案。
我参考了https://github.com/edmodo/cropper,但它只能提供包含4个点的矩形覆盖层。如果有任何人有链接或解决方案,请帮助我!
我正在开发一个项目,需要像CamScanner安卓应用程序一样的图片裁剪功能。当用户拍照并单击裁剪按钮时,应显示一个矩形覆盖层,就像CamScanner一样。矩形路径可以延伸到任意角度并执行裁剪。请帮助我找到解决方案。
我参考了https://github.com/edmodo/cropper,但它只能提供包含4个点的矩形覆盖层。如果有任何人有链接或解决方案,请帮助我!
我有一个类似的需求,但没有找到类似 CamScanner 的具体解决方案,所以我接受了挑战,并实现了一个扫描库(基于 OpenCV,丰富的图像处理库),类似于 CamScanner,可以轻松集成到现有应用程序中。使用该库,您将能够选择任何角度的确切边缘并从选定的 4 个边缘裁剪文档,以及更改已裁剪图像的透视变换。
Android ScanLibrary 的 Github 链接:https://github.com/jhansireddy/AndroidScannerDemo
感谢@jhansi提供了这个惊人的库,但这个库(Android Scanner Library)的问题是图像方向总是旋转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)
}