ขณะนี้ฉันกำลังพัฒนาเครื่องสแกนที่อ่านรหัส QR หลายรหัสที่พบในภาพเดียว ฉันจัดการเพื่ออ่านโค้ด QR ในภาพได้ แต่กลับให้ผลลัพธ์ที่ไม่สอดคล้องกัน สมมติว่ามีรหัส QR 4 รหัสในภาพ บางครั้งฉันสามารถอ่านได้ 2 และบางครั้ง 3 หรือเพียง 1 ซึ่งแตกต่างจากสแกนเนอร์ดั้งเดิม (ZXing Scanner) ที่ถอดรหัสอย่างรวดเร็ว ในกรณีของฉัน ฉันต้องทำให้แน่ใจว่ามีแสงเพียงพอและภาพไม่เบลอเพื่อถอดรหัส
ฉันใช้ QRCodeMultiReader
เพื่อถอดรหัสภาพ ขณะนี้ใช้ ZXing
Library เพื่อสร้างแอปพลิเคชัน
ด้านล่างนี้เป็นตัวอย่างโค้ดของฉัน:
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);
}