我使用zxing库生成了QRCode。

    QRCode qrcode = QRCode.from("Encoding string").withSize(17,17).to(ImageType.PNG);
    ByteArrayOutputStream out = QRCode.from(output.toString()).withSize(10, 10).to(ImageType.PNG).stream();
    FileOutputStream fout = new FileOutputStream(new File("D:\\QR_Code.JPG"));
    fout.write(out.toByteArray());
    fout.flush();
    fout.close();


它工作正常,但现在我想解码生成的QRCode。是否可以使用zxing从图像解码QRCode?如果是这样,您能给我一个提示,因为我没有找到合适的类或方法。提前致谢。

最佳答案

您可以执行以下操作:


您需要一个QRCodeReader实例来解码BinaryBitmap中的qrcode数据
您需要实例化一个HybridBinarizer并将其作为构造函数参数传递,以创建您的BinaryBitmap
HybridBinarizer需要LuminanceSource的实例
看看BufferedImageLuminanceSource


这是一个解码来自缓冲图像的数据的示例:

public static String qrDecodeFromImage(BufferedImage img) {
        if(img!=null) {
            LuminanceSource bfImgLuminanceSource = new BufferedImageLuminanceSource(img);
            BinaryBitmap binaryBmp = new BinaryBitmap(new HybridBinarizer(bfImgLuminanceSource));
            QRCodeReader qrReader = new QRCodeReader();
            Result result;
            try {
                result = qrReader.decode(binaryBmp);
                return result.getText();
            } catch (NotFoundException e) {} catch (ChecksumException e) {} catch (FormatException e) {}
        }
        return null;
    }

关于java - 用zxing解码QRCode。 java ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31816610/

10-12 00:22