如何設定 QR 碼的錯誤校正等級
掌握效能主導權。 調整錯誤修正設定,以建立更快、更耐用的 QR 碼,使其即使受損仍能可靠地被掃描。
錯誤修正正是區分一個失效的 QR 碼與一個持續運作的 QR 碼的關鍵。 當印刷標籤被刮傷、貼紙剝落,或海報在陽光下褪色時,錯誤校正功能將決定條碼是否仍能被掃描。 IronQR 讓開發人員能夠精確選擇 QR 碼的耐用程度,從針對清晰數位顯示螢幕優化的輕量級碼,到專為倉庫及工廠環境設計的重型碼皆可。
本指南將示範如何使用 IronQR程式庫設定錯誤修正等級,針對任何使用情境在資料密度與損壞容忍度之間取得平衡。 初次接觸 QR 碼生成功能的開發者,建議先參閱《將 QR 碼產生為圖片》指南。
快速入門:設定 QR 碼錯誤校正
透過 QrOptions 設定錯誤修正等級,並產生具備高容錯能力的 QR 碼。
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronQR
PM > Install-Package IronQR -
請複製並執行此程式碼片段。
var options = new QrOptions(QrErrorCorrectionLevel.Medium); var qrCode = QrWriter.Write("https://example.com", options); qrCode.Save().SaveAs("qr-medium.png"); -
部署至您的生產環境進行測試
立即透過免費試用,在您的專案中開始使用 IronQR
簡化工作流程(5 個步驟)
- 下載 IronQR C# 程式庫,以產生具備錯誤校正功能的 QR 碼
- 建立一個
QrOptions物件,並指定所需的ErrorCorrectionLevel - 請使用
QrWriter.Write()並搭配上述選項來產生 QR 碼 - 使用
Save()將 QR 碼儲存為位圖 - 使用
SaveAs()將位圖匯出為影像檔案
理解錯誤修正等級
QR 碼採用里德-所羅門(Reed-Solomon)錯誤校正技術,即使部分受損或被遮擋,仍能保持可掃描性。 IronQR 中的 QrErrorCorrectionLevel 枚舉提供四個等級,每個等級皆以犧牲資料容量為代價,換取更高的抗干擾能力:
| 難度等級 | 恢復能力 | 最適合 |
|---|---|---|
QrErrorCorrectionLevel.Low |
~7% 損耗 | 數位螢幕、受控環境 |
QrErrorCorrectionLevel.Medium |
~15% 損壞 | 通用用途,中等耐用度 |
QrErrorCorrectionLevel.High |
~25% 損壞 | 印刷品、戶外標誌 |
QrErrorCorrectionLevel.Highest |
~30% 損壞 | 工業標籤、嚴苛環境 |
較高的錯誤校正能力會增加更多冗餘模組,從而提高 QR 碼的視覺密度。 這也會影響生成的圖片大小,因此開發人員可能需要據此調整尺寸。 符合耐用性要求的最低層級,能使程式碼保持精簡且易於掃描。
設定錯誤修正等級
若要設定錯誤修正等級,請將所需的 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")
輸出
錯誤修正等級比較
每個等級都會產生視覺上不同的 QR 碼。 較低層級會產生更簡單的圖案,掃描速度較快;而較高層級則會形成更密集的圖案,能承受更大的損壞。 以下是各層級生成相同資料以供比較的方法:
: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% 恢復率)
根據使用情境選擇合適的技術層級
適當的錯誤修正程度取決於 QR 碼的放置位置及其必須具備的生存能力:
| 使用案例 | 難度等級 | 原因 | 相關指南 |
|---|---|---|---|
| 數位顯示器與網站 | QrErrorCorrectionLevel.Low |
螢幕潔淨,背光正常,無物理磨損。 保持程式碼簡潔且易於快速瀏覽。 | 將 QR 碼轉為圖片 |
| 名片、傳單及室內標示牌 | QrErrorCorrectionLevel.Medium |
輕微磨損與細微摺痕不會影響掃描效果。 建議搭配適當的邊距以獲得最佳效果。 | 為 QR 碼添加邊距 |
| 產品包裝與戶外海報 | QrErrorCorrectionLevel.High |
材料在運輸過程中會面臨雨水、紫外線照射及粗暴處理。 放大尺寸以便遠距離掃描。 | 調整 QR 碼大小 |
| 倉儲標籤、工廠現場及工業標籤 | QrErrorCorrectionLevel.Highest |
在嚴苛環境下,程式碼可能遭到刮傷、沾染污漬或部分遮蓋。 最大限度的冗餘確保其持續運作。 | 從圖片中讀取 QR 碼 |
若需更進階的 QR 碼生成模式,請參閱 C# QR 碼生成器教學指南,並探索 IronQR 的完整功能集。
常見問題
IronQR 提供哪些 QR 碼錯誤校正等級?
IronQR 提供四種 QR 碼錯誤修正等級:低、中、四分位數及高。這些等級有助於維持 QR 碼的可掃描性,即使 QR 碼部分受損亦然。
如何在 C# 中使用 IronQR 設定 QR 碼的錯誤修正等級?
您可透過設定 QrOptions 類別中的 QrErrorCorrectionLevel 屬性,在 IronQR 中設定錯誤校正等級。使用 QrWriter.Write 方法,即可產生具有指定錯誤校正等級的 QR 碼。
為何錯誤修正對 QR 碼至關重要?
錯誤校正對於 QR 碼至關重要,因為它能確保即使 QR 碼部分受損或被遮擋,仍可被掃描。IronQR 允許您根據需求選擇不同等級的錯誤校正。
IronQR 能否處理具有自訂錯誤校正設定的 QR 碼生成?
是的,IronQR 允許您自訂 QR 碼的錯誤校正設定,讓您能在資料容量與抗損壞能力之間取得平衡。
IronQR 的預設錯誤修正等級為何?
IronQR 通常預設為「中」級錯誤修正等級,此設定在資料容量與抗錯誤能力之間取得平衡,但您可根據需求進行自訂。
是否可以透過 IronQR 變更現有 QR 碼的錯誤糾正等級?
若要變更錯誤校正等級,您需要使用 IronQR 的 QrOptions 和 QrWriter 類別,以所需的錯誤校正等級重新產生 QR 碼。
較高的錯誤糾正等級會如何影響 QR 碼的大小?
提高錯誤糾正等級通常會導致 QR 碼變大,這是因為為了提升損壞恢復能力而加入了更多冗餘資料,而 IronQR 能有效管理這項功能。
哪些情境可能需要 QR 碼具備高錯誤修正能力?
在 QR 碼容易受損的環境中(例如工業場域或戶外地點),高錯誤修正等級有助於確保資料仍可讀取。IronQR 提供靈活性,讓您能夠自行設定此等級。
using IronQR 是否需要具備進階程式設計技能才能設定錯誤修正等級?
不,IronQR 設計上以使用者友善為宗旨,即使是初學者也能透過簡單的 C# 程式碼,輕鬆設定 QR 碼的錯誤校正等級。
IronQR 能否用於生成具有特定錯誤修正需求的商業應用 QR 碼?
是的,IronQR 非常適合商業應用,因為它提供可自訂的錯誤修正等級,確保 QR 碼能在各種環境下維持資料完整性。

