Я хочу получить некоторую информацию из штрих-кода с помощью моей камеры. Это работает, когда я использую png-изображение, загруженное с сайта, но когда я пытаюсь заставить его работать с фотографией, которую я сделал, он выводит мне пустой массив. Похоже, мне нужно сделать некоторые приготовления с изображением, чтобы заставить его работать. Вот мой код:
fun getTheBarCode(bitmap: Bitmap) {
val options = FirebaseVisionBarcodeDetectorOptions.Builder()
.setBarcodeFormats(
FirebaseVisionBarcode.FORMAT_AZTEC)
.build()
val detector = FirebaseVision.getInstance().getVisionBarcodeDetector(options)
val bm = BitmapFactory.decodeResource(getResources(), R.drawable.barcode) //this is the place where I can load my downloaded barcode to make everything work!
val newBitmap = Bitmap.createScaledBitmap(bitmap, 300, 500, false)
val image = FirebaseVisionImage.fromBitmap(newBitmap)
photoImage.setImageBitmap(newBitmap)
detector.detectInImage(image)
.addOnSuccessListener {
Log.d("Success", "Success")
//empty array here, when I take picture.
}
.addOnFailureListener {
Log.d("Failed", it.message)
}
}
Вот как я получаю изображение с камеры
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == CAMERA_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
val photo = data.extras.get("data") as Bitmap
getTheBarCode(photo)
}
}
Изменить:
Я сделал снимок своим телефоном, уменьшил его до 1500x1000 пикселей и поместил в каталог своего приложения, а затем загрузил в виде растрового изображения. До сих пор не работает.