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 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.

  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 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.

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 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

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

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
$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 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.

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.