Jak odczytywać wartości kodów QR w języku C
Natychmiastowe wyodrębnianie zdekodowanego tekstu z dowolnego obrazu kodu QR. Przygotuj surową wartość ciągu znaków do wyświetlenia, zapisania lub przetworzenia w aplikacji.
Odczytanie wartości kodu QR jest pierwszym krokiem w każdym procesie skanowania. Terminal płatniczy potrzebuje ID transakcji osadzony w kodzie QR. System magazynowy potrzebuje odniesienia do produktu na etykiecie. Walidator biletów potrzebuje kodu rezerwacji wydrukowanego na bilecie wydarzenia. IronQR upraszcza to zadanie: załaduj obraz, przekaż go do QrReader i odczytaj zdekodowany ciąg bezpośrednio z wyniku.
Ten przewodnik pokazuje, jak wyciągnąć wartości kodu QR z obrazów za pomocą biblioteki IronQR. Deweloperzy, którzy jeszcze nie wygenerowali kodu QR, powinni najpierw rozpocząć od przewodnika Create QR Code as Image.
Szybki start: Odczyt wartości kodu QR
Załaduj obraz, skanuj go z QrReader i wyciągnij zdekodowany ciąg.
-
Install IronQR with NuGet Package Manager
PM > Install-Package IronQR -
Skopiuj i uruchom ten fragment kodu.
var input = new QrImageInput("qr-code.png"); var results = new QrReader().Read(input); Console.WriteLine(results.First().Value); -
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 dla C# do odczytu wartości kodów QR
- Zaladuj obraz i owin go w
QrImageInput - Utwórz instancję
QrReaderi wywołajmetodę Readz danymi wejściowymi - Uzyskaj dostęp do zdekodowanego ciągu przez
QrResult.Value - Zabezpiecz się za pomocą
results.Any()przed uzyskaniem dostępu do.First()
Jak odczytać wartość kodu QR z obrazu?
Aby wyciągnąć wartość osadzoną w kodzie QR, załaduj obraz do QrImageInput, przekaż go do QrReader.Read() i uzyskaj dostęp do właściwości Value na zwróconym QrResult. Metoda zwraca kolekcję, jeden wynik na każdy kod QR znaleziony w obrazie.
Dane wejściowe
Kod QR poniżej koduje https://ironsoftware.com i zostanie zeskanowany w celu wyciągnięcia jego wartości.
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-value.cs
using IronQr;
using System.Drawing;
// Import image
var inputImage = Image.FromFile("sample.jpg");
// Load the asset into QrImageInput
QrImageInput imageInput = new QrImageInput(inputImage);
// Create a QR Reader object
QrReader reader = new QrReader();
// Read the input and get all embedded QR codes
IEnumerable<QrResult> results = reader.Read(imageInput);
// Display the value of the first QR code found
Console.WriteLine($"QR code value is {results.First().Value}");
Imports IronQr
Imports System.Drawing
Imports System.Linq
' Import image
Dim inputImage As Image = Image.FromFile("sample.jpg")
' Load the asset into QrImageInput
Dim imageInput As New QrImageInput(inputImage)
' Create a QR Reader object
Dim reader As New QrReader()
' Read the input and get all embedded QR codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Display the value of the first QR code found
Console.WriteLine($"QR code value is {results.First().Value}")
Właściwość Value zwraca surowy zdekodowany ciąg dokładnie tak, jak został zakodowany: URL, numer, tekst dowolny lub inne dane. Metoda Read() zawsze zwraca IEnumerable<QrResult>, nawet jeśli obecny jest tylko jeden kod QR. Jeśli obraz zawiera wiele kodów QR, iteruj z foreach (var result in results), aby przetworzyć każdy z nich. Zabezpiecz się za pomocą results.Any() przed wywołaniem .First(), aby obsłużyć obrazy, w których nie znaleziono kodu QR.
Wynik
Jak odczytać wszystkie właściwości kodu QR?
Każdy QrResult odsłania trzy właściwości, które razem dają pełny obraz tego, co zostało zeskanowane i gdzie zostało znalezione w obrazie. Korzystając z tego samego kodu QR, co powyżej:
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-value-properties.cs
using IronQr;
using IronSoftware.Drawing;
AnyBitmap inputImage = AnyBitmap.FromFile("sample.jpg");
QrImageInput imageInput = new QrImageInput(inputImage);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
QrResult result = results.First();
// Decoded text content of the QR code
Console.WriteLine($"Value: {result.Value}");
// Parsed URL — populated when Value is a valid URL, null otherwise
Console.WriteLine($"Url: {result.Url}");
// Corner coordinates of the QR code in the image [TL, TR, BL, BR]
string[] labels = { "Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right" };
for (int i = 0; i < result.Points.Length; i++)
{
Console.WriteLine($"{labels[i]}: ({result.Points[i].X}, {result.Points[i].Y})");
}
Imports IronQr
Imports IronSoftware.Drawing
Dim inputImage As AnyBitmap = AnyBitmap.FromFile("sample.jpg")
Dim imageInput As New QrImageInput(inputImage)
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
Dim result As QrResult = results.First()
' Decoded text content of the QR code
Console.WriteLine($"Value: {result.Value}")
' Parsed URL — populated when Value is a valid URL, Nothing otherwise
Console.WriteLine($"Url: {result.Url}")
' Corner coordinates of the QR code in the image [TL, TR, BL, BR]
Dim labels As String() = {"Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right"}
For i As Integer = 0 To result.Points.Length - 1
Console.WriteLine($"{labels(i)}: ({result.Points(i).X}, {result.Points(i).Y})")
Next i
Wynik
Jakie właściwości eksponuje QrResult?
QrResult odsłania następujące właściwości po udanym skanowaniu:
| Właściwość | Typ | Opis |
|---|---|---|
Value |
string |
Surowy zdekodowany ciąg dokładnie tak, jak zakodowany. Może zawierać URL, tekst prosty, ID numeryczne, JSON lub jakiekolwiek inne dane. To jest główna właściwość dla większości aplikacji. |
Url |
Uri |
Przetworzony obiekt Uri zapełniony, gdy Value jest prawidłowym absolutnym URL. Użyj go do otwierania linków, weryfikacji domen lub wyciągania komponentów URL. Zwraca null, jeśli wartość nie jest URL. |
Points |
PointF[] |
Cztery współrzędne narożne oznaczające pozycję kodu QR w źródłowym obrazie, uporządkowane [Top-Left, Top-Right, Bottom-Left, Bottom-Right]. Użyj go do rysowania obramowań, wycinania regionów lub obliczania obszaru skanowania. |
Jakie są powszechne zastosowania odczytu wartości kodu QR?
- Terminale płatnicze: Dekoduj URL transakcji lub ID referencyjne z kodu QR klienta, aby zainicjować przepływ płatności.
- Walidacja biletów: Wyciągnij odniesienie do rezerwacji z wydrukowanego lub wyświetlonego na ekranie kodu QR, aby zweryfikować dostęp do wydarzenia.
- Zarządzanie inwentaryzacją: Odczytaj numery seryjne produktów lub SKU z etykiet magazynowych, aby zaktualizować zapasy.
- Weryfikacja dokumentów: Pobierz ID rekordu lub hash z kodu QR umieszczonego na dokumencie prawnym lub rządowym.
- Uwierzytelnianie użytkownika: Dekoduj jednokrotny token z kodu QR, aby ukończyć dwuetapową weryfikację logowania.
Aby zapoznać się z większą ilością wzorców odczytu kodów QR, zapoznaj się z przewodnikiem Read QR Codes from Image i pełnym zestawem funkcji IronQR.

