我使用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/