如何设置二维码纠错级别
掌控性能。 调整纠错设置,生成更快、更耐用的二维码,即使受损也能可靠地被扫描。
错误校正正是区分一个失效的二维码与一个持续有效的二维码的关键所在。 当打印的标签被刮花、贴纸脱落或海报在阳光下褪色时,错误校正功能将决定条码是否仍可被扫描。 IronQR 允许开发者精确设定 QR 码的耐用程度,从针对清晰数字显示屏优化的轻量级码,到专为仓库和工厂车间环境设计的重型码,一应俱全。
本指南演示了如何使用 IronQR 库配置错误纠正级别,以在任何使用场景下平衡数据密度与损伤容忍度。 初次接触 QR 码生成的开发者,建议先阅读《将 QR 码生成图片》指南。
快速入门:设置二维码纠错
通过 QrOptions 配置错误纠正级别,并生成一个抗损 QR 码。
最小工作流程(5 个步骤)
- 下载 IronQR C# 库,生成带纠错功能的二维码
- 使用选定的
ErrorCorrectionLevel创建一个QrOptions对象 - 使用
QrWriter.Write()并指定这些选项生成二维码 - 使用
Save()将二维码保存为位图 - 使用
SaveAs()将位图导出为图像文件
理解错误更正级别
二维码采用里德-所罗门纠错码,即使部分受损或被遮挡,仍可被扫描。 IronQR 中的 QrErrorCorrectionLevel 枚举提供四个级别,每个级别都在数据容量与抗干扰能力之间进行权衡:
| 级别 | 恢复能力 | 最适合 |
|---|---|---|
QrErrorCorrectionLevel.Low |
~7% 损坏 | 数字屏幕、受控环境 |
QrErrorCorrectionLevel.Medium |
~15% 损坏 | 通用用途,中等耐用度 |
QrErrorCorrectionLevel.High |
~25% 损坏 | 印刷品、户外标识 |
QrErrorCorrectionLevel.Highest |
~30% 损坏 | 工业标签,恶劣环境 |
更高的纠错率会增加冗余模块,从而提高二维码的视觉密度。 这也会影响生成的图像大小,因此开发人员可能需要相应调整尺寸。 满足耐久性要求的最低级别能使代码保持紧凑且易于扫描。
设置错误更正级别
要设置错误更正级别,请将所需的 QrErrorCorrectionLevel 值传递给 QrOptions 构造函数。 生成QR码时,请将这些选项传递给 QrWriter.Write()。
在此示例中,错误修正级别设置为"中等",可在保持代码紧凑的同时恢复多达 15% 的损坏数据。
:path=/static-assets/qr/content-code-examples/how-to/error-correction-qr-code.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium);
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrMedium.png");
Imports IronQr
Imports IronSoftware.Drawing
Dim options As New QrOptions(QrErrorCorrectionLevel.Medium)
' Create QR code
Dim qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrMedium.png")
输出
错误更正级别的比较
每个级别生成的二维码在视觉上都有所不同。 较低层级生成更简单的图案,扫描速度更快;而较高层级则生成更密集的图案,能够承受更大的损伤。 以下是生成各层级相同数据以便进行比较的方法:
:path=/static-assets/qr/content-code-examples/how-to/error-correction-qr-code-compare.cs
using IronQr;
using IronSoftware.Drawing;
string data = "https://ironsoftware.com";
// Low - ~7% recovery, smallest code
QrCode qrLow = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.Low));
qrLow.Save().SaveAs("qrLow.png");
// Medium - ~15% recovery, balanced
QrCode qrMedium = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.Medium));
qrMedium.Save().SaveAs("qrMedium.png");
// High - ~25% recovery, durable
QrCode qrHigh = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.High));
qrHigh.Save().SaveAs("qrHigh.png");
// Highest - ~30% recovery, maximum resilience
QrCode qrHighest = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.Highest));
qrHighest.Save().SaveAs("qrHighest.png");
Imports IronQr
Imports IronSoftware.Drawing
Dim data As String = "https://ironsoftware.com"
' Low - ~7% recovery, smallest code
Dim qrLow As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.Low))
qrLow.Save().SaveAs("qrLow.png")
' Medium - ~15% recovery, balanced
Dim qrMedium As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.Medium))
qrMedium.Save().SaveAs("qrMedium.png")
' High - ~25% recovery, durable
Dim qrHigh As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.High))
qrHigh.Save().SaveAs("qrHigh.png")
' Highest - ~30% recovery, maximum resilience
Dim qrHighest As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.Highest))
qrHighest.Save().SaveAs("qrHighest.png")
输出
低(~7% 恢复率)
中等难度(约15%的恢复率)
高(~25% 恢复率)
最高(~30% 恢复率)
根据使用场景选择合适的语体
合适的纠错级别取决于二维码的使用场景及其必须满足的要求:
| 使用案例 | 级别 | 为什么 | 相关指南 |
|---|---|---|---|
| 数字显示屏和网站 | QrErrorCorrectionLevel.Low |
屏幕洁净,背光正常,无物理磨损。 保持代码简洁,便于快速浏览。 | 将二维码生成图片 |
| 名片、传单和室内标识 | QrErrorCorrectionLevel.Medium |
轻微磨损和细微折痕不会影响扫描效果。 建议配合适当的页边距以获得最佳效果。 | 为二维码添加边距 |
| 产品包装和户外海报 | QrErrorCorrectionLevel.High |
运输过程中,材料会面临雨水、紫外线照射以及粗暴搬运。 放大尺寸以便远距离扫描。 | 调整二维码大小 |
| 仓库标签、工厂车间及工业标签 | QrErrorCorrectionLevel.Highest |
在严苛的环境中,代码可能被刮花、弄脏或部分遮盖。 最大限度的冗余确保了它们的正常运行。 | 从图片中读取二维码 |
如需了解更高级的二维码生成模式,请参阅 C# 二维码生成器教程以及 IronQR 的完整功能集。
常见问题解答
IronQR中可用的QR码纠错级别有哪些?
IronQR提供四种QR码纠错级别:低(Low)、中(Medium)、四分位(Quartile)和高(High)。这些级别帮助确保QR码即使部分受损仍然可扫描。
如何使用C#中的IronQR设置QR码的错误校正级别?
您可以通过在QrOptions类中配置QrErrorCorrectionLevel属性来设置IronQR中的错误校正级别。使用QrWriter.Write方法生成具有指定错误校正级别的QR码。
为什么错误校正对QR码很重要?
错误校正对QR码至关重要,因为它确保即使QR码部分受损或遮挡仍能被扫描。IronQR允许您选择不同的错误校正级别以满足您的需求。
IronQR能否处理具有自定义错误校正设置的QR码生成?
是的,IronQR允许您自定义QR码的错误校正设置,使您能够在数据容量和对损坏的防护性之间找到平衡。
IronQR中的默认错误校正级别是什么?
IronQR通常默认为中等错误校正级别(Medium),它在数据容量和错误抵抗性之间提供了一个平衡的方法,不过您可以根据需要进行自定义。
是否可以使用IronQR更改现有QR码的错误校正级别?
要更改错误校正级别,您需要使用IronQR的QrOptions和QrWriter类以所需的错误校正级别重新生成QR码。
提高错误校正级别如何影响QR码的大小?
增加错误校正级别通常会导致QR码变大,因为包含了更多的冗余数据以改善对损坏的恢复,IronQR有效地管理了这一点。
哪些场景下需要QR码的高错误校正级别?
高错误校正级别在QR码可能会受到损坏的环境(如工业环境或户外地点)中非常有用,这确保了数据的可访问性。IronQR通过允许您设置此级别提供了灵活性。
使用IronQR设置错误校正水平需要高级编程技能吗?
不,IronQR设计为用户友好,即使是初学者也可以使用简单的C#代码轻松设置QR码的错误校正级别。
IronQR可以用于生成具有特定纠错需求的商业应用的QR码吗?
是的,IronQR非常适合商业应用,因为它提供了可定制的纠错级别,确保QR码能在各种条件下保持数据完整性。

