在使用谷歌的MLKit开发一个扫描数据矩阵代码的安卓应用程序时,我无法解析以ISO-8859-1编码并包含非ASCII字符的数据的代码。
下面是一个例子:DataMatrix failing with ML Kit
val options = BarcodeScannerOptions.Builder()
.setBarcodeFormats(Barcode.FORMAT_DATA_MATRIX)
.build()
val scanner = BarcodeScanning.getClient(options)
scanner.process(image).addOnSuccessListener { barcodes ->
val barcode = barcodes.firstOrNull()
Log.i(TAG, barcode?.rawValue)
Log.i(TAG, String(barcode?.rawBytes!!, StandardCharsets.ISO_8859_1))
}
这两条日志语句都返回一个表示“未知编码”(字面意思)的字符串。
我使用的是MLKit条形码扫描库的最新版本:
implementation 'com.google.mlkit:barcode-scanning:16.1.1
ZXing可以做到这一点,但它在识别现实生活中遇到了更多的困难,扫描并不那么完美。
有什么想法,有什么提示吗?
发布于 2021-05-25 22:15:02
在最新版本的ML套件条形码扫描库16.1.2中,rawBytes
方法现在返回QR码的预期内容,也适用于非unicode编码。
implementation 'com.google.mlkit:barcode-scanning:16.1.2'
发布于 2021-02-26 18:13:00
条形码图片的问题是在条形码周围没有填充,这将返回一个空结果。
在条形码内容周围添加一些填充之后,条形码被检测。
。
https://stackoverflow.com/questions/66000646
复制