如何在 C# 中設置錯誤修正 | IronQR

如何在 C# 中設定錯誤修正功能。

This article was translated from English: Does it need improvement?
Translated
View the article in English

C# BarCode 中的錯誤修正是使用 IronBarcode 的 QRCodeWriter.CreateQrCode 方法中的 QrErrorCorrectionLevel 參數來設定的,支援四個等級 (LMQH),可回復 7-30% 的損壞資料,更高的等級可建立更複雜的 QR code。

條碼糾錯是指即使有視覺缺陷或編碼錯誤,也能保持條碼可讀性的能力。 這些損壞可能是由於印刷瑕疵、污跡、刮痕或掃描條件的變化等因素造成的。 錯誤修正是決定適合哪一種 BarCode 編碼的主要因素,尤其是在 C# 中使用 QR 編碼時。

一般來說,由於以下因素,二維條碼比一維條碼具有更高的缺陷容忍度:

  • 資料容量:二維條碼比一維條碼儲存更多資料,可在水平和垂直方向進行編碼。 進一步瞭解 支援的 BarCode 格式。 -冗餘性:二維條碼具有多層資料編碼,即使條碼的一部分損壞,也可以從任何剩餘的完整部分提取資訊。 -緊湊性:二維條碼由於其緊湊的形狀,適用於空間有限的場所。 -靈活性:二維條碼可以從各種角度和方向掃描。

在處理掃描條件不太理想的 不完美條碼和影像修正情境時,錯誤修正變得特別重要。

快速入門:在二維碼建立中使用糾錯等級

這個簡短的範例說明如何使用 IronBarcode 產生 QR 碼,並將錯誤修正等級設定為 Medium。 開發人員可使用 CreateQrCode 方法設定內容、大小和錯誤修正等級。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronBarcode

    PM > Install-Package BarCode

  2. 複製並運行這段程式碼。

    var qr = IronBarCode.QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("qr.png");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronBarcode,免費試用!
    arrow pointer


如何調整 QR 碼中的錯誤修正? 目前,IronBarcode 支援在**QR Code**、**Micro QRs**和**rMQRs**中設定錯誤更正,作為其全面的[條碼生成功能](https://ironsoftware.com/csharp/barcode/features/generate/)的一部分。 它支援二維碼標準規定的所有四個預設糾錯等級。 The error correction level is adjusted via the **QrErrorCorrectionLevel** parameter in the QRCodeWriter.CreateQrCode method. 糾錯分為四個層次: -**最高等級**: **H**級。 最多可恢復 30% 的資料。 -**高**: **Q**級。 最多可恢復 25% 的資料。 -**中**: **M**級。 最多可恢復 15% 的資料。 -**低**: **L**級。 最多可恢復 7% 的資料。 更高的糾錯等級會導致更複雜的二維碼影像,因此在生成二維碼時需要在視覺清晰度和糾錯之間取得平衡。 以下程式碼範例示範如何設定糾錯: ```csharp :path=/static-assets/barcode/content-code-examples/how-to/set-error-correction.cs ```

我應該選擇哪個錯誤修正等級? 錯誤修正等級的選擇取決於您的特定使用個案和環境。 對於 QR 代碼可能會受到物理損害、污垢或部分遮蔽的應用程式,建議使用較高的錯誤修正等級 (`Q` 或 `H`) 。 這些層級提供更好的 [ 容錯性](https://ironsoftware.com/csharp/barcode/features/fault-tolerance/),但代價是增加 QR 代碼的複雜性和大小。 對於乾淨、受控的環境,例如數位顯示器或高品質印刷,較低的錯誤修正等級 (`L` 或 `M` 可能就足夠了。這些工具可產生更簡單、密度較低的 QR 代碼,在較小的尺寸下更容易掃描。 請考慮以下因素: - **物理環境**:戶外或工業環境受益於更高的錯誤修正 - **列印品質**:較低的列印品質需要較高的錯誤修正 - **大小限制**:有限的篇幅可能需要較低的錯誤修正以提高可讀性 - **掃描距離**:較長的掃描距離對於較簡單的 QR 代碼效果較佳 以下是一個範例,展示如何產生具有不同錯誤修正等級的 QR 碼,以供比較: ```csharp using IronBarCode; using System.Drawing; // Generate QR codes with all four error correction levels var content = "https://ironsoftware.com/csharp/barcode/"; int size = 500; // Create QR codes with different error correction levels var lowCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low); var mediumCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium); var highCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High); var highestCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest); // Save each with descriptive filenames lowCorrection.SaveAsPng("qr_low_correction.png"); mediumCorrection.SaveAsPng("qr_medium_correction.png"); highCorrection.SaveAsPng("qr_high_correction.png"); highestCorrection.SaveAsPng("qr_highest_correction.png"); ```

哪些參數控制錯誤修正? The primary parameter controlling error correction in IronBarcode is the QrErrorCorrectionLevel enumeration. This parameter is passed to the CreateQrCode method and determines how much redundant data is embedded in the QR code. [建立自訂 QR 碼](https://ironsoftware.com/csharp/barcode/examples/csharp-custom-qr-code/)時,您可以結合錯誤修正設定與其他樣式選項: ```csharp using IronBarCode; // Create a styled QR code with high error correction var styledQr = QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High); // Apply custom styling styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue) .SetMargins(10) .AddAnnotationTextAboveBarcode("Scan for Details"); // Export with various options styledQr.SaveAsPng("styled_high_correction.png"); styledQr.SaveAsJpeg("styled_high_correction.jpg"); styledQr.SaveAsPdf("styled_high_correction.pdf"); ```

為什麼錯誤修正會影響 QR Code 的複雜性? 錯誤修正的工作方式是使用 Reed-Solomon 糾錯演算法將冗餘資料加入 QR 碼中。 此冗餘可讓 QR 碼閱讀器重建遺失或損毀的部分資料。 加入的錯誤修正越多,就需要更多的模組 (黑白方塊) 來編碼相同的資訊,因此會產生更密集、更複雜的圖案。 這種複雜性對[條碼讀取設定](https://ironsoftware.com/csharp/barcode/examples/barcode-reader-settings-csharp/)和掃描效能有實際的影響。 較高的錯誤修正等級可能需要調整閱讀器設定以獲得最佳效能。

有哪些不同的錯誤修正等級? 下面這組二維碼圖像範例,每個圖像都代表相同的值,但糾錯等級各不相同。 如觀察所見,更高的糾錯等級會導致更複雜的二維碼影像,從而提供更大的容錯能力。
QR code with highest error correction level showing dense pattern of black and white squares
QR code demonstrating high error correction level with dense data patterns and robust finder patterns
QR code with medium error correction level showing clear data pattern and finder squares
QR code with low error correction level showing standard black and white matrix pattern

何時應該使用較高的錯誤修正? 建議在幾種情況下使用較高的錯誤修正等級: 1.**工業應用**:當 QR 代碼用於暴露在惡劣條件下的產品或設備時 2.**戶外看板**:適用於在戶外展示的 QR 代碼,會受到天候的破壞 3.**長期儲存**:需要多年保持可掃描性的文件或產品 4.**行銷材料**:當加入部分遮蔽 QR 代碼的標誌或設計時 對於涉及 [ 讀取多個 BarCode](https://ironsoftware.com/csharp/barcode/how-to/read-multiple-barcodes/) 或處理損壞影像的進階方案,較高的錯誤修正可提供額外的可靠性。

錯誤修正如何影響 QR Code 大小? 錯誤修正會直接影響 QR 代碼的實體大小和資料容量。 較高的錯誤修正等級需要更多的模組來編碼相同數量的資料,這可能導致 - 相同資料內容的較大 QR 代碼 - 在給定的 QR 碼大小下,減少最大資料容量 - 較複雜的圖案,在小尺寸時可能較難掃描 - 增加產生與掃描的處理時間

修正等級之間的視覺差異為何? 在比較編碼相同資料的 QR 代碼時,錯誤修正等級之間的視覺差異會變得明顯。 較低的修正等級會產生模組較少的簡單模式,而較高的等級則會產生較密集、複雜的模式。 這些差異不僅會影響外觀,也會影響列印和顯示時的實際考量。 如需更多進階的條碼產生技術,請探索我們的 [ 綜合文件](https://ironsoftware.com/csharp/barcode/docs/),並學習如何將糾錯與其他條碼功能整合,以在您的 .NET 應用程式中達到最佳效果。

常見問題解答

什麼是 BarCode 技術中的錯誤修正?

BarCode 中的錯誤修正是指在視覺缺陷或編碼錯誤的情況下仍能保持條碼可讀性的能力。IronBarcode 透過 QrErrorCorrectionLevel 參數實現錯誤修正,根據所選擇的等級,可恢復 7-30% 的損壞資料。

在 C# 中建立 QR 碼時,如何設定錯誤修正等級?

您可以使用 IronBarcode 的 QRCodeWriter.CreateQrCode 方法,透過指定 QrErrorCorrectionLevel 參數來設定錯誤修正等級。該方法接受內容、大小以及四種錯誤修正等級(L、M、Q、H)中的一種。

QR 碼有哪四種錯誤修正等級?

IronBarcode 支援四種預設的 QR 代碼錯誤修正等級:L (Low - 7% 復原率)、M (Medium - 15% 復原率)、Q (Quartile - 25% 復原率) 和 H (High - 30% 復原率)。較高的等級可產生更複雜的 QR 碼,但具有較佳的抗損壞性。

哪些 BarCode 類型支援錯誤修正設定?

目前,IronBarcode 支援為 QR Code、Micro QRs 和 rMQRs 設定錯誤修正等級。與傳統的一維條碼相比,這些二維條碼格式具有更優異的錯誤修正能力。

為什麼 2D 條碼比 1D 條碼有更好的錯誤修正效果?

IronBarcode 所支援的二維條碼因具有較高的資料容量(水平和垂直編碼)而具有較佳的錯誤更正能力,內建的備援功能允許從完整的部分擷取資料,緊湊的形狀適合有限的空間,以及可從不同角度掃描的彈性。

何時應該使用較高的錯誤修正等級?

在處理不完美的印刷條件、潛在的實體損害(刮痕、污點)、具挑戰性的掃描環境,或需要長期耐用性時,請使用 IronBarcode 較高的錯誤修正等級。較高的等級可提供更可靠的掃描,但會增加 QR 代碼的複雜性。

哈伊里爾·哈希米·本·奧馬爾
軟體工程師
和所有優秀的工程師一樣,Hairil 是一位孜孜不倦的學習者。他不斷精進 C#、Python 和 Java 的知識,並運用這些知識為 Iron Software 的團隊成員創造價值。 Hairil 加入 Iron Software 團隊之前,畢業於馬來西亞瑪拉製程大學 (Universiti Teknologi MARA),並獲得了化學與製程工程學士學位。
準備好開始了嗎?
Nuget 下載 2,035,202 | 版本: 2025.12 剛剛發布