** 我正在开发一个 Java 应用程序来读取(解码)二维码,而无需在笔记本电脑中使用摄像头。我正在使用 ZXING JAR 生成二维码。**
我正在对该二维码进行一些操作。现在,我想在不使用相机的情况下检查二维码是否正常。
有什么办法可以做到吗?
ZXing 有一个JavaSE 模块,它提供了BufferedImageLuminanceSource
解码常规 Java的关键BufferedImage
。
最低限度,从 ZXing 的 JavaSE DecodeThread中提取:
BufferedImage image = ...
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Result result = new MultiFormatReader().decode(bitmap);
如果decode()
不抛出异常,则ZXing能够解码条码(您可以查看条码的内容)。
http://zxing.org/w/docs/javadoc/com/google/zxing/Reader.html#decode(com.google.zxing.BinaryBitmap , java.util.Map)
您可以配置MultiFormatReader
,例如只解析二维码,通过使用decode(BinaryBitmap, Map<DecodeHintType,?> hints)
重载,允许您指定任意数量的解码提示。或者,如果您真的只想要 QR 码,请使用 aQRCodeReader
而不是MultiFormatReader
.