Android Can';t使用ZXing库读取二维码图像,而网站/其他应用程序可以
我正在使用Zxing库(我使用来自journeyapps的库)扫描图像中的二维码。它工作得很好,但我发现一些图片,我无法解码,虽然网站或其他应用程序使用ZXing可以解码它。所以我想知道我做错了什么或者我错过了什么 如果有人有线索那就太好了 此图像:Android Can';t使用ZXing库读取二维码图像,而网站/其他应用程序可以,android,kotlin,qr-code,zxing,Android,Kotlin,Qr Code,Zxing,我正在使用Zxing库(我使用来自journeyapps的库)扫描图像中的二维码。它工作得很好,但我发现一些图片,我无法解码,虽然网站或其他应用程序使用ZXing可以解码它。所以我想知道我做错了什么或者我错过了什么 如果有人有线索那就太好了 此图像: 另一个应用程序解码它 该网站无法解码 应用程序条形码扫描仪+无法解码 我的应用程序无法解码 此图像:(从第一个图像裁剪而来) 另一个应用程序解码它 该网站将对其进行解码 应用程序条形码扫描仪+无法解码 我的应用程序无法解码 此图像:(从第二
- 另一个应用程序解码它
- 该网站无法解码
- 应用程序条形码扫描仪+无法解码
- 我的应用程序无法解码
- 另一个应用程序解码它
- 该网站将对其进行解码
- 应用程序条形码扫描仪+无法解码
- 我的应用程序无法解码
- 另一个应用程序解码它
- 该网站将对其进行解码
- 应用程序条形码扫描器+解码
- 我的应用程序可以解码
fun scanQRImage(bMap: Bitmap, context: Context, angle: Float = 0f): IntentResult? {
val intArray = IntArray(bMap.width * bMap.height)
//copy pixel data from the Bitmap into the 'intArray' array
bMap.getPixels(intArray, 0, bMap.width, 0, 0, bMap.width, bMap.height)
val source: LuminanceSource = RGBLuminanceSource(bMap.width, bMap.height, intArray)
val hints: MutableMap<DecodeHintType, Any> = Hashtable()
hints[DecodeHintType.TRY_HARDER] = java.lang.Boolean.TRUE
val bitmap = BinaryBitmap(HybridBinarizer(source))
val reader: Reader = MultiFormatReader()
return try {
val result: Result = reader.decode(bitmap, hints)
generateResultIntent(BarcodeResult(result, null), context, false)
} catch (e: Exception) {
val newAngle = angle + 90
if (newAngle < 400)
scanQRImage(rotateBitmap(bMap, angle), context, newAngle)
else
null
}
}
fun scanQRImage(bMap:Bitmap,context:context,angle:Float=0f):IntentResult?{
val intArray=intArray(bMap.width*bMap.height)
//将位图中的像素数据复制到“intArray”数组中
获取像素(intArray,0,bMap.width,0,0,bMap.width,bMap.height)
val光源:亮度光源=RGBLuminanceSource(bMap.width、bMap.height、intArray)
val提示:MutableMap=Hashtable()
提示[DecodeHintType.TRY_HARDER]=java.lang.Boolean.TRUE
val位图=二进制位图(混合二进制程序(源))
val reader:reader=multiformatrader()
回击{
val result:result=reader.decode(位图、提示)
generateResultIntent(BarcodeResult(结果,null),上下文,false)
}捕获(e:例外){
val newAngle=角度+90
如果(新角度<400)
scanQRImage(旋转位图(bMap,角度)、上下文、新角度)
其他的
无效的
}
}