Jak ustawić poziomy korekcji błędów kodów QR
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.
-
Install IronQR with NuGet Package Manager
PM > Install-Package IronQR -
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"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronQR w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę IronQR C#, aby generować kody QR z korekcją błędów
- Utwórz obiekt
QrOptionsz wybranym poziomemkorekcji błędów (ErrorCorrectionLevel) - Wygeneruj kod QR za pomocą
metody QrWriter.Write()z tymi opcjami - Zapisz kod QR jako obraz bitmapowy za pomocą
funkcji Save() - Wyeksportuj bitmapę do pliku graficznego za pomocą
SaveAs()
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")
Wynik
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")
Wynik
Niski (~7% odzysku)
Średni poziom trudności (~15% odzysku)
Wysoka (~25% odzysku)
Najwyższy poziom (~30% odzysku)
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.

