В настоящее время я разрабатываю сканер, который считывает несколько QR-кодов, найденных на одном изображении. Мне удается читать QR-коды на изображении, но это дает мне непоследовательные результаты. Предполагая, что на изображении есть 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);
}