我正在使用 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 内部格式。就像我说的库在设备中运行良好,但我找不到任何合乎逻辑的理由说明为什么从我的电脑运行此代码不起作用。