はじめに
今回も前回に引き続き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() }
}
}
}
最後に
次のパートを書き次第下記に追加していきます
どなたかのお役に立てれば幸いです