在我的应用程序中使用 zxing 库扫描二维码,但库不支持扫描黑码中的白色(负扫描),所以请建议我解决如何解决此问题。
添加以下代码,source.invert() 将完成您的工作
LuminanceSource source = new RGBLuminanceSource(bitmaps[0].getWidth(),
bitmaps[0].getHeight(), intArray);
BinaryBitmap bMap = new BinaryBitmap(new HybridBinarizer(source));
try {
result = reader.decode(bMap);
} catch (Exception e) {
BinaryBitmap bMap1 = new BinaryBitmap(new HybridBinarizer(source.invert()));
try {
result = reader.decode(bMap1);
} catch (NotFoundException notFoundException) {
// notFoundException.printStackTrace();
} catch (ChecksumException checksumException) {
//checksumException.printStackTrace();
} catch (FormatException formatException) {
//formatException.printStackTrace();
}
}
return result;
如果您添加 zxing-android-embedded 库,则必须将此代码添加到您的启动器中:
scannerLauncher1.launch(
ScanOptions().setPrompt("scan your code")
.setDesiredBarcodeFormats(ScanOptions.ALL_CODE_TYPES)
.addExtra(Intents.Scan.SCAN_TYPE, Intents.Scan.INVERTED_SCAN)
)
此代码反转您的条形码颜色并可以检测到它! 祝你好运