LoginSignup
0
0

jetpack composeでcameraxとmlkitをつかってバーコード読み取り画面を実装するPart2

Posted at

はじめに

今回も前回に引き続きJetpackComposeでのバーコード読み取り機能を実装していきます。

本文

下記のコードはカメラから取得した画像を加工している処理です

class BarCodeScanner(
    private val onBarCodeDetected: (Barcode) -> Unit,
) : ImageAnalysis.Analyzer {
    private val qrScannerOptions = BarcodeScannerOptions.Builder()
        .setBarcodeFormats(Barcode.FORMAT_ALL_FORMATS)
        .build()
    private val barCodeScanner = BarcodeScanning.getClient(qrScannerOptions)

    @SuppressLint("UnsafeOptInUsageError")
    override fun analyze(image: ImageProxy) {
        val mediaImage = image.image
        // カメラから画像を取得できてるかチェック
        if (mediaImage != null) {
            // Cameraから取得したInputImage形式に変換する
            val adjustedImage =
                InputImage.fromMediaImage(mediaImage, image.imageInfo.rotationDegrees)

            barCodeScanner.process(adjustedImage)
                .addOnSuccessListener {
                    if (it.isNotEmpty()) {
                        onBarCodeDetected(it.first())
                    }
                }
                .addOnCompleteListener { image.close() }
        }
    }
}

最後に

次のパートを書き次第下記に追加していきます
どなたかのお役に立てれば幸いです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0