zbar 解析本地二维码

implementation 'cn.bingoogolapple:bga-qrcode-zbar:1.2.4'

引用的别人编译好的lib,解析本地二维码的时候缺获取不到,其实是读取到的图片格式不匹配,需要转换一下

fun decoderQR(filePath: String): String? {
var decodeFile = BitmapFactory.decodeFile(filePath)

val pixels = IntArray(decodeFile.width * decodeFile.height)

decodeFile.getPixels(pixels, 0, decodeFile.width, 0, 0, decodeFile.width, decodeFile.height)
val barcode = Image(decodeFile.width, decodeFile.height, "RGB4")
barcode.setData(pixels)

// // 指定二维码在图片中的区域,也可以不指定,识别全图。
// barcode.setCrop(200, 200, 640, 640)
//
var qrCodeString: String? = null
//
//
var mImageScanner = ImageScanner()
//
// mImageScanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
//
mImageScanner.setConfig(0, Config.X_DENSITY, 3)
mImageScanner.setConfig(0, Config.Y_DENSITY, 3)
val result = mImageScanner.scanImage(barcode.convert("Y800"))

// Toast.makeText(this, "result--------》》" + result, Toast.LENGTH_SHORT).show()

if (result != 0) {
    val symSet = mImageScanner.results
    for (sym in symSet)
        qrCodeString = sym.data
}

return qrCodeString

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容