gpt4 book ai didi

android - 如何使用zxing库从一张图片中读取多个二维码

转载 作者:可可西里 更新时间:2023-11-01 18:49:09 33 4
gpt4 key购买 nike

我目前正在开发一种扫描仪,可以读取一张图片中的多个二维码。我设法读取了图像中的二维码,但结果不一致。假设图像中有 4 个二维码,有时我可以读取 2 个,有时可以读取 3 个或仅读取 1 个。与原始扫描仪(ZXing 扫描仪)不同,它解码速度很快。而在我的情况下,我必须确保有足够的光线并且图像不模糊才能对其进行解码。

我正在使用 QRCodeMultiReader 解码图像。目前正在使用 ZXing 库来创建应用程序。

下面是我的代码 fragment :

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);
}

最佳答案

我已经为相机创建了一个应用程序 我使用了 intent 因为每个 Andriod 操作系统都有默认的相机应用程序,通常它们针对该设备进行了更好的优化,而不是编写一个通用的相机应用程序仅针对您的手机进行了优化...所以为了相机更好地使用 intent

为了从单个图像中提取多个 QR,我尝试了下面的代码。
但是有时结果不一致我得到 1 或 2 或 3 的 4 有时没有....它不是完美的解决方案

if(photo == null) 
return;
Bitmap ScaledQr = null;
ScaledQr = Bitmap.createScaledBitmap(photo, 640,480, false);
BinaryBitmap Qr = BitMap2BinayBitmap(ScaledQr);
Result [] kpResultMulti = null;
Result kpResultSingle = null;
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, true);
//hints.put(DecodeHintType.PURE_BARCODE, true);

try {
kpResultMulti = kpReaderArr.decodeMultiple(Qr,hints);
} catch (NotFoundException e) {
// TODO Auto-generated catch block
msbox("Exception","NotFoundException");
e.printStackTrace();
}

if(kpResultMulti != null){
msbox("Total Result" ,kpResultMulti.length +"");// + photo.getWidth() + "Height=" + photo.getHeight());
for(Result kp : kpResultMulti)
{

msbox("Results",kp.getText());
}
}

关于android - 如何使用zxing库从一张图片中读取多个二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15107610/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com