Android zxing NotFoundException

我正在使用zxing解码QRcode图像,但它始终返回NotFoundException.在线解码器http://zxing.org/w/decode.jspx可以完美地扫描这些图像,因此应该可以在我的应用程序中进行扫描.
我正在使用此代码:

String path = Environment.getExternalStorageDirectory().getPath()+"/QRPictures/QRTest.bmp";
Bitmap bmp = BitmapFactory.decodeFile(path);
int[] pixels = new int[bmp.getWidth()*bmp.getHeight()];
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(), bmp.getHeight());
LuminanceSource source = new RGBLuminanceSource(bmp.getWidth(), bmp.getHeight(), pixels); 
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new MultiFormatReader();
try {
    Result result = reader.decode(bitmap);
    String contents = result.getText(); 
    Log.d(TAG, content);
} catch (NotFoundException e) {
    Log.d(TAG, "NFE");
} catch (ChecksumException e) {
    Log.d(TAG, "CSE");
} catch (FormatException e) {
    Log.d(TAG, "FE");
} 

你能帮忙吗?

解决方法:

根据an answer到一个相关问题,使用TRY_HARDER解码提示可能会有所帮助,因为它“针对准确性而不是速度进行了优化”:

Hashtable<DecodeHintType, Object> decodeHints = new Hashtable<DecodeHintType, Object>();
decodeHints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
Result result = reader.decode(bitmap, decodeHints);

如果在联机服务中正确解释了同一图像,但在您的情况下失败,则可能是在您关闭它的同时打开了TRY_HARDER.

上一篇:Zxing二维码扫描与解析


下一篇:appium+python自动化64-使用Uiautomator2执行driver.keyevent()方法报错解决