删除边距/边框空间并在 ZXing 生成的二维码上将 ErrorCorrectionLevel

我想生成没有边距/边框空间的 QR 码并ErrorCreationLevel.H使用 ZXing,如下所示:


Map<EncodeHintType, Object> hints = new EnumMap<>(EncodeHintType.class);

hints.put(com.google.zxing.EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);

hints.put(com.google.zxing.EncodeHintType.MARGIN, 0);


QRCodeWriter writer = new QRCodeWriter();


writer.encode("rasool", BarcodeFormat.QR_CODE, 200, 200, hints);

通过这种方式,生成的二维码包含默认的边距/边框空间,可以轻松扫描,但我预计它不应该有任何边距/边框空间。


当我评论与相关的行时ErrorCreationLevel,生成的二维码没有任何边距/边框空间,但不能用智能手机和扫描仪软件扫描。


我使用的是ZXing 的3.4.0版本。


我怎么解决这个问题?


慕莱坞森
浏览 207回答 1
1回答

偶然的你

您扫描的困难无疑与参考解码算法要求静区(“边缘”)保持完整这一事实有关,因此扫描仪无法检测、构建和二值化符号。纠错级别有助于从二进制化符号中恢复丢失/损坏的信息,但如果没有静区,您甚至可能无法在解码过程中走这么远。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java