Android Can';t使用ZXing库读取二维码图像,而网站/其他应用程序可以

Android Can';t使用ZXing库读取二维码图像,而网站/其他应用程序可以,android,kotlin,qr-code,zxing,Android,Kotlin,Qr Code,Zxing,我正在使用Zxing库(我使用来自journeyapps的库)扫描图像中的二维码。它工作得很好,但我发现一些图片,我无法解码,虽然网站或其他应用程序使用ZXing可以解码它。所以我想知道我做错了什么或者我错过了什么 如果有人有线索那就太好了 此图像: 另一个应用程序解码它 该网站无法解码 应用程序条形码扫描仪+无法解码 我的应用程序无法解码 此图像:(从第一个图像裁剪而来) 另一个应用程序解码它 该网站将对其进行解码 应用程序条形码扫描仪+无法解码 我的应用程序无法解码 此图像:(从第二

我正在使用Zxing库(我使用来自journeyapps的库)扫描图像中的二维码。它工作得很好,但我发现一些图片,我无法解码,虽然网站或其他应用程序使用ZXing可以解码它。所以我想知道我做错了什么或者我错过了什么

如果有人有线索那就太好了

此图像:

  • 另一个应用程序解码它
  • 该网站无法解码
  • 应用程序条形码扫描仪+无法解码
  • 我的应用程序无法解码
此图像:(从第一个图像裁剪而来)

  • 另一个应用程序解码它
  • 该网站将对其进行解码
  • 应用程序条形码扫描仪+无法解码
  • 我的应用程序无法解码
此图像:(从第二个图像裁剪而来)

  • 另一个应用程序解码它
  • 该网站将对其进行解码
  • 应用程序条形码扫描器+解码
  • 我的应用程序可以解码
这是我用来解码图像的代码。我尝试了使用TRY_HARDER提示,使用多个二进制代码,甚至旋转它

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,角度)、上下文、新角度)
其他的
无效的
}
}