Jak odczytywać wartości kodów QR w języku C

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

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 sprawia, że jest to proste: załaduj obraz, przekaż go do QrReader i odczytaj zdekodowany ciąg znaków 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, zeskanuj go za pomocą QrReader i wyodrębnij zdekodowany ciąg znaków.

  1. Install IronQR with NuGet Package Manager

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

    var input = new QrImageInput("qr-code.png");
    var results = new QrReader().Read(input);
    Console.WriteLine(results.First().Value);
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer

Jak odczytać wartość kodu QR z obrazu?

Aby wyodrębnić wartość zawartą w kodzie QR, należy załadować obraz do QrImageInput, przekazać go do QrReader.Read() i uzyskać dostęp do właściwości Value w 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.

Kod QR kodujący https://ironsoftware.com używany jako wejście do skanowania
: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}")
$vbLabelText   $csharpLabel

Właściwość Value zwraca surowy, zdekodowany ciąg znaków dokładnie taki, jak został zakodowany: adres URL, liczbę, dowolny tekst 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, należy użyć foreach (var result in results), aby przetworzyć każdy z nich. Zabezpiecz za pomocą results.Any() przed wywołaniem .First(), aby obsłużyć obrazy, na których nie znaleziono kodu QR.

Wynik

Wyjście konsoli pokazujące zdekodowaną wartość kodu QR https://ironsoftware.com

Jak odczytać wszystkie właściwości kodu QR?

Każdy QrResult udostępnia trzy właściwości, które razem dają pełny obraz tego, co zostało zeskanowane i gdzie zostało znalezione na 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
$vbLabelText   $csharpLabel

Wynik

Wyjście konsoli pokazujące odczytane właściwości Value, Url i Points z kodu QR

Jakie właściwości udostępnia QrResult?

QrResult udostępnia następujące właściwości po pomyślnym 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 Przeanalizowany obiekt Uri wypełniony, gdy Value jest prawidłowym bezwzględnym adresem URL. Użyj go do otwierania linków, weryfikacji domen lub wyciągania komponentów URL. Zwraca null, jeśli wartość nie jest adresem URL.
Points PointF[] Współrzędne czterech narożników wyznaczające położenie kodu QR na obrazie źródłowym, 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.

Często Zadawane Pytania

Jak mogę odczytać wartości kodu QR w C#?

Możesz użyć IronQR w C#, aby odczytywać wartości kodu QR. Metoda QrReader.Read() pozwala wyodrębnić zdekodowany ciąg z kodu QR używając QrResult.Value.

Jaka metoda jest używana do dekodowania kodów QR w IronQR?

IronQR wykorzystuje metodę QrReader.Read() do dekodowania kodów QR, co pozwala wyodrębniać dane, takie jak tekst i URL.

Czy IronQR może wyodrębniać URL z kodów QR?

Tak, IronQR może analizować URL z kodów QR przy użyciu właściwości QrResult.Url po dekodowaniu kodu QR.

Czy można uzyskać koordynaty narożnika kodu QR przy użyciu IronQR?

IronQR zapewnia właściwość QrResult.Points, która pobiera koordynaty narożnika kodu QR, dostarczając precyzyjnych danych lokalizacyjnych.

Co to jest QrResult.Value w IronQR?

QrResult.Value to własność w IronQR, która przechowuje zdekodowaną wartość tekstową kodu QR po przetworzeniu przez QrReader.Read().

Czy IronQR obsługuje odczytywanie wielu typów danych z kodów QR?

Tak, IronQR obsługuje odczytywanie różnych typów danych, w tym tekstu, adresów URL i współrzędnych z kodów QR, oferując wszechstronną funkcjonalność dla różnych aplikacji.

Jak dokładna jest funkcja dekodowania kodu QR w IronQR?

IronQR został zaprojektowany do zapewniania bardzo dokładnego dekodowania kodów QR, efektywnie wyodrębniając szczegółowe informacje takie jak wartości, adresy URL i punkty narożne.

Czy IronQR może być używany zarówno do statycznych, jak i dynamicznych kodów QR?

Tak, IronQR może dekodować zarówno statyczne, jak i dynamiczne kody QR, co sprawia, że jest elastycznym narzędziem do różnych zastosowań kodów QR.

Z jakim językiem programowania jest zgodny IronQR?

IronQR jest zgodny z C#, co umożliwia programistom łatwą integrację funkcjonalności odczytywania kodów QR w ich aplikacjach .NET.

Czy istnieje sposób na przetestowanie odczytu kodów QR z IronQR?

Możesz przetestować odczyt kodów QR w IronQR, używając przykładowych kodów QR i przykładowego kodu umieszczonego w dokumentacji, zapewniając, że integracja spełnia potrzeby Twojego projektu.

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 67,270 | Wersja: 2026.5 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.