我目前正在开发一种扫描仪,可以读取一张图像中的多个二维码。我设法读取图像中的二维码,但结果不一致。假设图像中有 4 个 QR 码,有时我可以读取 2 个,有时可以读取 3 个或仅 1 个。与原始扫描仪(ZXing Scanner)不同,它解码速度很快。而在我的情况下,我必须确保有足够的光线并且图像不会模糊以对其进行解码。
我正在使用QRCodeMultiReader
来解码图像。当前使用ZXing
库来创建应用程序。
以下是我的代码片段:
public void onPictureTaken(byte[] data, Camera camera) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inMutable = true;
Bitmap bitmap = BitmapFactory
.decodeByteArray(data, 0, data.length, opt);
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
LuminanceSource source = new RGBLuminanceSource(bitmap);
QRCodeMultiReader multiReader = new QRCodeMultiReader();
Result[] results = multiReader.decodeMultiple(new BinaryBitmap(
new HybridBinarizer(source)), hints);
}