** 我正在开发一个Java应用程序,用于在笔记本电脑中使用相机读取(解码)QR码。我使用ZXING JAR生成QR码。**
我正在为QR码做一些操作。现在,我想在没有使用相机的情况下检查QR码是否正常。
有什么方法可以做到吗?
答案 0 :(得分:2)
ZXing有JavaSE module,它为解码常规Java BufferedImage
提供了至关重要的BufferedImageLuminanceSource
。
最低限度,从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能够解码条形码(您可以查看contents of the bar code)。
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码,允许您指定任意数量的decoding hints。或者,如果您真的只想要QR码,请使用QRCodeReader
代替MultiFormatReader
。