web-dev-qa-db-ja.com

Android camscannerのように画像を切り抜く

Camscanner Androidアプリケーションのような画像トリミング機能を必要とするプロジェクトを開発しています。写真を撮ったときにユーザーがトリミングボタンをクリックすると、camscannerのように長方形のオーバーレイが表示されます。長方形のパスは任意の角度に伸ばすことができ、トリミングを実行できます。解決策を手伝ってください。

私は https://github.com/edmodo/cropper を参照していました。しかし、これは4点の長方形オーバーレイのみです。リンクや解決策がある場合は助けてください!!

14
Robin prash

私も同様の要件があり、CamScannerに似た具体的な解決策も見つからなかったので、挑戦して、簡単に統合できるCamScannerに似たスキャンライブラリ(OpenCVの上に豊富な画像処理ライブラリ)を実装しました既存のアプリケーションに、ライブラリを使用して、任意の角度で正確なエッジを選択し、選択した4つのエッジからそれに応じてドキュメントをトリミングし、トリミングされた画像の遠近法変換を変更できます。

Android ScanLibrary: https://github.com/jhansireddy/AndroidScannerDemo のGithubリンク

enter image description here

38
jhansi

この素晴らしいライブラリを@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) }

0
syed dastagir