0

** 我正在开发一个 Java 应用程序来读取(解码)二维码,而无需在笔记本电脑中使用摄像头。我正在使用 ZXING JAR 生成二维码。**

我正在对该二维码进行一些操作。现在,我想在不使用相机的情况下检查二维码是否正常。

有什么办法可以做到吗?

4

1 回答 1

2

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.

于 2012-08-26T11:24:37.827 回答