【问题标题】:Android crop image like camscannerAndroid 裁剪图像,如 camscanner
【发布时间】:2013-09-26 05:50:10
【问题描述】:

我正在开发一个需要像 camscanner android 应用程序这样的图像裁剪功能的项目,当拍摄照片并且当用户单击裁剪按钮时,应该显示一个矩形覆盖,如 camscanner 中所示。矩形路径可以拉伸到任何角度并且可以执行裁剪的地方。请帮我解决一下。

我指的是https://github.com/edmodo/cropper。但这只是带有 4 个点的矩形叠加层。如果有人有链接或解决方案,请帮助我!!

【问题讨论】:

标签: android image draw crop


【解决方案1】:

我有类似的需求,我也没有找到任何类似于 CamScanner 的具体解决方案,所以我接受了挑战并实现了一个类似于 CamScanner 的扫描库(在 OpenCV 之上,丰富的图像处理库),它可以可以轻松集成到现有应用程序中,使用该库,您将能够以任何角度选择精确的边缘,并从选定的 4 个边缘相应地裁剪文档,并更改裁剪图像的透视变换。

Android ScanLibrary 的 Github 链接:https://github.com/jhansireddy/AndroidScannerDemo

【讨论】:

  • 在裁剪片段多边形表面没有自动检测边缘你能帮我解决这个问题吗
  • @jhansi 正在使用 sam scan 库,但一个小问题是矩形裁剪没有检测到它从一半图像中检测到的完整图像,但是当它被裁剪时得到完整图像但是如果我将矩形调整到文档的边缘得到一半的图像,你有什么想法吗,如果你需要我可以发布图像供你参考
  • @Balaji 您使用的是哪个扫描库?这是从我的 AndroidScannerDemo 存储库中分叉的吗?
  • @jhansi 你做的不错的图书馆。您能否提供一些链接,让我了解如何将 OpenCV 用于我的项目、任何教程或参考资料
  • 这个库的主要问题是图像方向总是旋转90度。第二个问题是,它缺乏自动边缘检测。
【解决方案2】:

感谢@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) }

【讨论】:

    猜你喜欢
    • 2019-05-25
    • 2012-05-15
    • 2015-02-02
    • 2018-09-20
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    相关资源
    最近更新 更多