在java中不使用相机的QR码解码

时间:2012-08-26 10:54:58

标签: java qr-code zxing

** 我正在开发一个Java应用程序,用于在笔记本电脑中使用相机读取(解码)QR码。我使用ZXING JAR生成QR码。**

我正在为QR码做一些操作。现在,我想在没有使用相机的情况下检查QR码是否正常。

有什么方法可以做到吗?

1 个答案:

答案 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