【问题标题】:QR Reading API is throwing Exception for some imagesQR Reading API 对某些图像抛出异常
【发布时间】:2014-06-16 11:01:21
【问题描述】:

我正在尝试使用google.zxing 读取二维码。以下是我曾经阅读过的代码。

Result result = null;
BinaryBitmap binaryBitmap;
FileInputStream pngInput = null;
try {
    pngInput = new FileInputStream("D:\\TestQR.png");
    binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(pngInput))));
    result = new MultiFormatReader().decode(binaryBitmap,null);
}catch (Exception e) {
    throw e;
}finally {
    if(pngInput != null) {
        pngInput.close();
    }
}
System.out.println(result.getText());

现在上面的代码对某些图像工作正常,并为其中一些图像抛出 NullPointerException。我检查了该图像,但该图像完全可以使用移动应用程序读取。 是否有任何其他第三方 API 可以解决此问题?上述行中是否需要任何代码更改?

这是对我造成问题的图像。

【问题讨论】:

  • 嗨。你能提供堆栈跟踪吗?此外,图像的副本会很有用。
  • 我已经用图片编辑了问题。

标签: java qr-code


【解决方案1】:

“图像完全没问题”的意思是 nada、nothing、zip、zilch、零。
如果没有关于 NPE 的确切位置和内容的更多信息,没有人能够告诉您有关您的代码或图像有什么问题的任何信息。
但是请注意,仅仅因为某些东西是有效的 QR 码并不意味着您的硬盘上有一个有效的图像文件来代表它。
或者仅仅因为 png 可以被一个应用程序读取,它是有效的,并且如果您尝试在另一个应用程序中读取它不会抛出扳手。
图像文件已损坏,或者根据解码器不包含有效的 QR 码(这可能暗示某些损坏)。
后者很有可能,因为某些东西可能是损坏的二维码,但二维码扫描仪可以读取,因为这些二维码使用了错误检测系统,从文件读取时可能会绕过错误检测系统。

【讨论】:

    【解决方案2】:

    您发布的二维码可以在库中正常解码:

    http://zxing.org/w/decode?u=http%3A%2F%2Fi.stack.imgur.com%2FhCj3w.jpg

    您的代码有问题,由于没有进一步的细节,任何人都无法说出来。不过这么多应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      相关资源
      最近更新 更多