В настоящее время я разрабатываю сканер, который считывает несколько 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);
}