0

我正在使用 Zxing core.jar 来扫描条形码和二维码,它运行良好,但我想使用 Robolectric 进行测试,在没有模拟器或设备的情况下运行自动化测试,这将通过 zxing 获取 N 个图像,所以我的问题是 zxing 出于某种原因没有从 .jpg 文件中检测到任何类型的代码格式,我不确定图像是否有大小限制,或者我缺少的其他东西。进行检测的代码是这样的,它适用于将帧预览转换为 jpgs

        BinaryBitmap bitmap = getBitmapFromImageData(input);
        Collection<BarcodeFormat> decodeFormats = getDecodeFormats();
        Map<DecodeHintType, Object> hints = getHints(decodeFormats);
        MultiFormatReader multiFormatReader = getMultiFormatReader(hints);

        Result rawResult;
        try {
            rawResult = multiFormatReader.decodeWithState(bitmap);
        } catch (NotFoundException e) {
            // not really an error, just QR code not found
            Log.e(LOG_TAG, "Code Detection not found exception.");
            return null;
        }

其中输入包含 jpg 格式的字节数组,并由 getBitmapFromImageData 转换为 Zxings 内部格式。就像我说的库在设备中运行良好,但我找不到任何合乎逻辑的理由说明为什么从我的电脑运行此代码不起作用。

4

1 回答 1

0

您没有显示任何关键代码,例如您阅读图像的方式。您应该检查它是否被正确读取,是否被您的代码正确二进制化等。查看项目中的单元测试以了解如何正确读取和处理桌面上的图像。我不知道您的代码在不同的“get”方法中可能会做什么。

于 2013-01-24T06:46:25.987 回答