Jak ustawić poziomy korekcji błędów kodów QR

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

Przejmij kontrolę nad wydajnością. Dostosuj ustawienia korekcji błędów, aby tworzyć szybsze i trwalsze kody QR, które są odporne na uszkodzenia i nadal można je niezawodnie skanować.

Korekta błędów to coś, co odróżnia kod QR, który się psuje, od takiego, który działa bez zarzutu. Kiedy wydrukowana etykieta ulegnie zarysowaniu, naklejka odklei się lub plakat wyblaknie na słońcu, korekcja błędów decyduje o tym, czy kod nadal będzie skanowany. IronQR pozwala programistom dokładnie wybrać poziom odporności kodu QR, od lekkich kodów zoptymalizowanych pod kątem czystych wyświetlaczy cyfrowych po wytrzymałe kody stworzone z myślą o magazynach i halach fabrycznych.

W niniejszym przewodniku pokazano, jak skonfigurować poziomy korekcji błędów przy użyciu biblioteki IronQR, równoważąc gęstość danych z tolerancją na uszkodzenia dla dowolnego przypadku użycia. Programiści, którzy dopiero zaczynają przygodę z generowaniem kodów QR, powinni najpierw zapoznać się z przewodnikiem "Utwórz kod QR jako obraz".

Szybki start: Ustawianie korekcji błędów kodu QR

Skonfiguruj poziom korekcji błędów za pomocą QrOptions i wygeneruj odporny kod QR.

  1. Install IronQR with NuGet Package Manager

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

    var options = new QrOptions(QrErrorCorrectionLevel.Medium);
    var qrCode = QrWriter.Write("https://example.com", options);
    qrCode.Save().SaveAs("qr-medium.png");
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer

Zrozumienie poziomów korekty błędów

Kody QR wykorzystują korekcję błędów Reeda-Solomona, dzięki czemu można je skanować nawet wtedy, gdy są częściowo uszkodzone lub zasłonięte. Enum QrErrorCorrectionLevel w IronQR zapewnia cztery poziomy, z których każdy wymienia pojemność danych na zwiększoną odporność:

Poziom Zdolność odzyskiwania Najlepsze dla
QrErrorCorrectionLevel.Low ~7% uszkodzeń Ekrany cyfrowe, kontrolowane środowiska
QrErrorCorrectionLevel.Medium ~15% uszkodzeń Zastosowanie ogólne, umiarkowana trwałość
QrErrorCorrectionLevel.High ~25% uszkodzeń Materiały drukowane, oznakowanie zewnętrzne
QrErrorCorrectionLevel.Highest ~30% uszkodzeń Etykiety przemysłowe, trudne warunki

Wyższy poziom korekcji błędów powoduje dodanie większej liczby modułów nadmiarowości, co zwiększa gęstość wizualną kodu QR. Ma to również wpływ na rozmiar generowanego obrazu, więc programiści mogą być zmuszeni do odpowiedniego dostosowania wymiarów. Najniższy poziom spełniający wymagania dotyczące trwałości pozwala zachować zwięzłość kodu i szybkość skanowania.

Ustawianie poziomu korekty błędów

Aby ustawić poziom korekcji błędów, przekaż żądaną wartość QrErrorCorrectionLevel do konstruktora QrOptions. Następnie przekaż te opcje do QrWriter.Write() podczas generowania kodu QR.

W tym przykładzie korekcja błędów jest ustawiona na poziom średni, co pozwala odzyskać do 15% uszkodzonych danych, zachowując jednocześnie zwięzłość kodu.

: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")
$vbLabelText   $csharpLabel

Wynik

Kod QR ze średnią korekcją błędów

Porównanie poziomów korekty błędów

Każdy poziom generuje wizualnie inny kod QR. Niższe poziomy generują prostsze wzory, które skanują się szybciej, podczas gdy wyższe poziomy tworzą gęstsze wzory, które są bardziej odporne na uszkodzenia. Oto jak wygenerować te same dane na każdym poziomie w celu porównania:

: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")
$vbLabelText   $csharpLabel

Zwróć uwagęWyższe poziomy korekcji błędów zwiększają liczbę modułów w kodzie QR, co powoduje, że wzór staje się gęstszy. Jeśli priorytetem jest szybkość skanowania, zaleca się wybór najniższego poziomu, który spełnia wymagania projektu dotyczące trwałości.

Wynik

QR Code with Low Error Correction
Kod QR ze średnią korekcją błędów
QR Code with High Error Correction
QR Code with Highest Error Correction

Wybór odpowiedniego poziomu dla danego przypadku użycia

Odpowiedni poziom korekty błędów zależy od tego, gdzie kod QR będzie umieszczony i jakie wymagania musi spełniać:

Przykład zastosowania Poziom Dlaczego Powiązany przewodnik
Wyświetlacze cyfrowe i strony internetowe QrErrorCorrectionLevel.Low Ekran jest czysty, oświetlenie jest regulowane, brak śladów zużycia. Kod powinien być prosty i łatwy do przeglądania. Utwórz kod QR jako obraz
Wizytówki, ulotki i oznakowanie wewnętrzne QrErrorCorrectionLevel.Medium Lekkie zagięcia i niewielkie pogniecenia nie mają wpływu na skanowanie. Aby uzyskać najlepsze wyniki, należy zachować odpowiednie marginesy. Dodaj marginesy do kodu QR
Opakowania produktów i plakaty zewnętrzne QrErrorCorrectionLevel.High Materiały są narażone na deszcz, promieniowanie UV oraz nieostrożne obchodzenie się z nimi podczas transportu. Zwiększ rozmiar w celu skanowania z większej odległości. Zmień rozmiar kodu QR
Etykiety magazynowe, hale fabryczne i oznaczenia przemysłowe QrErrorCorrectionLevel.Highest Trudne srodowiska, w których kody ulegają zarysowaniu, zabrudzeniu lub częściowemu zakryciu. Maksymalna nadmiarowość zapewnia ich ciągłe działanie. Odczytuj kody QR z obrazów

Aby zapoznać się z bardziej zaawansowanymi wzorcami generowania kodów QR, zapoznaj się z samouczkiem dotyczącym generatora kodów QR w języku C# oraz pełnym zestawem funkcji IronQR.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 63,676 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronQR
uruchom próbkę obserwuj, jak Twój URL staje się kodem QR.