Jak ustawić korekcję błędów w C# | IronQR

Jak ustawić korektę błędów w języku C

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

Korekta błędów w kodach kreskowych C# jest ustawiana za pomocą parametru QrErrorCorrectionLevel w metodzie QRCodeWriter.CreateQrCode IronBarcode, wspierając cztery poziomy (L, M, Q, H), które mogą odzyskać 7-30% uszkodzonych danych, gdzie wyższe poziomy tworzą bardziej złożone kody QR.

Korekta błędów w kodach kreskowych odnosi się do zdolności do utrzymania czytelności kodu, mimo wad wizualnych lub błędów kodowania. Te uszkodzenia mogą wyniknąć z takich czynników jak niedoskonałości drukowania, rozmazywanie, zarysowania lub różnice w warunkach skanowania. Korekta błędów jest głównym czynnikiem decydującym o tym, który typ kodowania kodu kreskowego jest odpowiedni, zwłaszcza przy pracy z kodami QR w C#.

Ogólnie rzecz biorąc, kody kreskowe 2D mają wyższą tolerancję na wady w porównaniu do kodów kreskowych 1D ze względu na następujące czynniki:

  • Pojemność Danych: Kody kreskowe 2D przechowują więcej danych niż kody kreskowe 1D, kodując zarówno poziomo, jak i pionowo. Dowiedz się więcej o obsługiwanych formatach kodów kreskowych.
  • Redundancja: Kody kreskowe 2D mają wiele warstw kodowania danych, co pozwala na ekstrakcję informacji z jakichkolwiek pozostałych nienaruszonych sekcji, nawet gdy część kodu kreskowego jest uszkodzona.
  • Kompaktowość: Kody kreskowe 2D są odpowiednie do ograniczonych przestrzeni ze względu na ich zwartą formę.
  • Elastyczność: Kody kreskowe 2D mogą być skanowane z różnych kątów i orientacji.

Korekta błędów staje się szczególnie ważna w przypadku nieidealnych kodów kreskowych i korekcji obrazu, gdzie warunki skanowania są mniej niż idealne.

Szybki start: użyj poziomu korekcji błędów w tworzeniu kodu QR

Ten krótki przykład pokazuje, jak wygenerować kod QR za pomocą IronBarcode, ustawiając poziom korekcji błędów na Średni. Deweloperzy mogą używać metody CreateQrCode z zawartością, rozmiarem i poziomem korekcji błędów.

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode
  2. Skopiuj i uruchom ten fragment kodu.

    var qr = IronBarCode.QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("qr.png");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak dostosować korekcję błędów w kodach QR?

Obecnie IronBarcode obsługuje ustawianie korekcji błędów w kodach QR, Micro QR i rMQR jako część swoich wszechstronnych funkcjonalności generowania kodów kreskowych. Obsługuje wszystkie cztery wstępnie ustawione poziomy korekcji błędów określone przez standardy kodów QR. The error correction level is adjusted via the QrErrorCorrectionLevel parameter in the QRCodeWriter.CreateQrCode method. Cztery poziomy korekcji błędów to:

  • Najwyższa: Poziom H. Może odzyskać do 30% danych.
  • Wysoka: Poziom Q. Może odzyskać do 25% danych.
  • Średnia: Poziom M. Może odzyskać do 15% danych.
  • Niska: Poziom L. Może odzyskać do 7% danych.

Wyższe poziomy korekcji błędów skutkują bardziej złożonymi obrazami kodów QR, wymagając równowagi pomiędzy klarownością wizualną a korekcją błędów podczas generowania kodów QR. Poniższy przykład kodu pokazuje ustawianie korekcji błędów:

:path=/static-assets/barcode/content-code-examples/how-to/set-error-correction.cs
// Import the necessary namespace for barcode generation
using IronBarCode;

// Create a QR code with the specified URL, size, and error correction level
GeneratedBarcode mediumCorrection = QRCodeWriter.CreateQrCode(
    "https://ironsoftware.com/csharp/barcode/", // URL to be encoded in the QR code
    500,                                       // Size of the QR code (500x500 pixels)
    QRCodeWriter.QrErrorCorrectionLevel.Medium // Error correction level to handle distortions
);

// Save the generated QR code image as a PNG file with the specified filename
mediumCorrection.SaveAsPng("mediumCorrection.png");
' Import the necessary namespace for barcode generation
Imports IronBarCode

' Create a QR code with the specified URL, size, and error correction level
Private mediumCorrection As GeneratedBarcode = QRCodeWriter.CreateQrCode("https://ironsoftware.com/csharp/barcode/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium)

' Save the generated QR code image as a PNG file with the specified filename
mediumCorrection.SaveAsPng("mediumCorrection.png")
$vbLabelText   $csharpLabel

Który poziom korekty błędów powinienem wybrać?

Wybór poziomu korekcji błędów zależy od twojego konkretnego przypadku użycia i środowiska. Dla aplikacji, gdzie kody QR mogą być narażone na uszkodzenia fizyczne, zabrudzenia lub częściowe zaciemnienie, zaleca się wyższe poziomy korekcji błędów (Q lub H). Te poziomy zapewniają lepszą tolerancję na błędy kosztem zwiększonej złożoności i rozmiaru kodu QR.

Dla czystych, kontrolowanych środowisk jak wyświetlacze cyfrowe lub druk wysokiej jakości, niższe poziomy korekcji błędów (L lub M) mogą wystarczyć. Te poziomy tworzą prostsze, mniej gęste kody QR, które są łatwiejsze do skanowania przy mniejszych rozmiarach. Należy wziąć pod uwagę następujące czynniki:

  • Środowisko Fizyczne: Ustawienia zewnętrzne lub przemysłowe korzystają z wyższej korekty błędów
  • Jakość Druku: Druk niskiej jakości wymaga wyższej korekty błędów
  • Ograniczenia Rozmiarów: Ograniczona przestrzeń może wymagać niższej korekcji błędów dla czytelności
  • Dystans Skanowania: Dłuższe dystanse skanowania lepiej działają z prostszymi kodami QR

Oto przykład pokazujący, jak generować kody QR z różnymi poziomami korekcji błędów do porównania:

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");
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");
Imports IronBarCode
Imports System.Drawing

' Generate QR codes with all four error correction levels
Dim content As String = "https://ironsoftware.com/csharp/barcode/"
Dim size As Integer = 500

' Create QR codes with different error correction levels
Dim lowCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)
Dim mediumCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)
Dim highCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)
Dim 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")
$vbLabelText   $csharpLabel

Jakie parametry kontrolują korekcję błędów?

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. Podczas tworzenia niestandardowych kodów QR, można połączyć ustawienia korekcji błędów z innymi opcjami stylizacji:

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");
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");
Imports IronBarCode
Imports System.Drawing

' Create a styled QR code with high error correction
Dim styledQr = QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)

' Apply custom styling
styledQr.ChangeBarCodeColor(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")
$vbLabelText   $csharpLabel

Dlaczego korekcja błędów wpływa na złożoność kodu QR?

Korekcja błędów działa poprzez dodanie nadmiarowych danych do kodu QR z użyciem algorytmów korekcji błędów typu Reed–Solomon. Ta redundancja pozwala czytnikowi kodów QR na odtworzenie brakujących lub uszkodzonych fragmentów danych. Im więcej korekcji błędów się dodaje, tym więcej modułów (czarnych i białych kwadratów) potrzeba, aby zakodować te same informacje, co skutkuje bardziej gęstym, bardziej złożonym wzorem.

Ta złożoność ma praktyczne implikacje dla ustawień czytania kodów kreskowych i wydajności skanowania. Wyższe poziomy korekcji błędów mogą wymagać dostosowania ustawień czytnika dla optymalnej wydajności.

Jakie są różne poziomy korekcji błędów?

Poniżej znajduje się próbka zestawu obrazów kodów QR, z których każdy reprezentuje tę samą wartość, ale z różnymi poziomami korekcji błędów. Jak obserwowano, wyższe poziomy korekcji błędów prowadzą do bardziej złożonych obrazów kodów QR, oferując większą tolerancję na błędy.

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

Kiedy powinienem używać wyższej korekcji błędów?

Wyższe poziomy korekcji błędów zaleca się w kilku scenariuszach:

  1. Zastosowania Przemysłowe: Gdy kody QR są używane na produktach lub sprzęcie narażonym na trudne warunki
  2. Oznakowanie Zewnętrzne: Dla kodów QR umieszczonych na zewnątrz, narażonych na uszkodzenia przez pogodę
  3. Długoterminowe Przechowywanie: Dokumenty lub produkty, które muszą zachować się jako skanowalne przez lata
  4. Materiały Marketingowe: Gdy w obszarze kodu QR znajdują się logo lub projekty częściowo go zasłaniające

Dla zaawansowanych scenariuszy obejmujących czytanie wielu kodów kreskowych lub przetwarzanie uszkodzonych obrazów, wyższa korekcja błędów zapewnia dodatkową niezawodność.

Jak korekcja błędów wpływa na rozmiar kodu QR?

Korekcja błędów bezpośrednio wpływa na fizyczny rozmiar i pojemność danych kodów QR. Wyższe poziomy korekcji błędów wymagają więcej modułów do zakodowania tej samej ilości danych, co może skutkować:

  • Większymi kodami QR dla tej samej zawartości danych
  • Zmniejszoną maksymalną pojemnością danych przy danym rozmiarze kodu QR
  • Bardziej złożonymi wzorami, które mogą być trudniejsze do zeskanowania w małych rozmiarach
  • Zwiększonym czasem przetwarzania zarówno dla generowania, jak i skanowania

Jakie są różnice wizualne pomiędzy poziomami korekcji?

Różnice wizualne między poziomami korekcji błędów stają się widoczne przy porównywaniu kodów QR kodujących te same dane. Niższe poziomy korekcji błędów tworzą prostsze wzory z mniejszą liczbą modułów, podczas gdy wyższe poziomy tworzą gęstsze, bardziej skomplikowane wzory. Te różnice wpływają nie tylko na wygląd, ale także na praktyczne aspekty drukowania i wyświetlania.

Dla bardziej zaawansowanych technik generacji kodów kreskowych, zapoznaj się z naszą kompleksową dokumentacją i dowiedz się, jak integrować korekcję błędów z innymi funkcjami kodów kreskowych, aby uzyskać optymalne wyniki w twoich aplikacjach .NET.

Często Zadawane Pytania

Czym jest korekcja błędów w technologii kodów kreskowych?

Korekcja błędów w kodach kreskowych odnosi się do zdolności utrzymania czytelności kodu kreskowego pomimo jego wizualnych wad lub błędów kodowania. IronBarcode wdraża korekcję błędów poprzez parametr QrErrorCorrectionLevel, który pozwala na odzyskiwanie 7-30% uszkodzonych danych w zależności od wybranego poziomu.

Jak ustawić poziomy korekcji błędów przy tworzeniu kodów QR w C#?

Możesz ustawić poziomy korekcji błędów używając metody QRCodeWriter.CreateQrCode w IronBarcode, określając parametr QrErrorCorrectionLevel. Metoda akceptuje zawartość, rozmiar i jeden z czterech poziomów korekcji błędów (L, M, Q, H).

Jakie są cztery poziomy korekcji błędów dostępne dla kodów QR?

IronBarcode obsługuje cztery predefiniowane poziomy korekcji błędów dla kodów QR: L (Low - 7% odzyskiwania), M (Medium - 15% odzyskiwania), Q (Quartile - 25% odzyskiwania) i H (High - 30% odzyskiwania). Wyższe poziomy tworzą bardziej skomplikowane kody QR, ale oferują lepszą odporność na uszkodzenia.

Które typy kodów kreskowych obsługują ustawienia korekcji błędów?

Obecnie IronBarcode obsługuje ustawienia poziomów korekcji błędów dla QR Codes, Micro QRs i rMQRs. Te formaty kodów kreskowych 2D oferują lepsze możliwości korekcji błędów w porównaniu do tradycyjnych kodów kreskowych 1D.

Dlaczego kody kreskowe 2D mają lepszą korekcję błędów niż kody kreskowe 1D?

Kody kreskowe 2D obsługiwane przez IronBarcode mają lepszą korekcję błędów dzięki wyższej pojemności danych (kodowanie zarówno w poziomie, jak i w pionie), wbudowanej redundancji pozwalającej na ekstrakcję danych z nienaruszonych sekcji, kompaktowemu kształtowi odpowiedniemu dla ograniczonych przestrzeni i elastyczności w skanowaniu pod różnymi kątami.

Kiedy powinienem używać wyższych poziomów korekcji błędów?

Używaj wyższych poziomów korekcji błędów z IronBarcode przy problematycznych warunkach drukowania, potencjalnych uszkodzeniach fizycznych (zadrapania, plamy), w trudnych środowiskach skanowania lub gdy wymagane jest długotrwałe utrzymanie. Wyższe poziomy zapewniają bardziej niezawodne skanowanie, ale zwiększają złożoność kodu QR.

Hairil Hasyimi Bin Omar
Inżynier oprogramowania
Jak wszyscy wielcy inżynierowie, Hairil jest zapalonym uczniem. Doskonali swoją wiedzę na temat C#, Pythona i Javy, wykorzystując tę wiedzę, aby dodawać wartości członkom zespołu Iron Software. Hairil dołączył do zespołu Iron Software z Universiti Teknologi MARA w Malezji, gdzie uzyskał tytuł licencjata ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,145,441 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.