Przejdź do treści stopki
KORZYSTANIE Z IRONQR

Jak odczytać kod QR z obrazu w C#

Kody QR (Quick Response Codes) są wszędzie - na opakowaniach produktów, biletach na wydarzenia, menu, a nawet wizytówkach. Jako programista .NET, umiejętność szybkiego i niezawodnego odczytywania kodów QR z obrazów może otworzyć drzwi do potężnych funkcji automatyzacji i interakcji z użytkownikiem. W tym przewodniku pokażemy, jak używać IronQR, biblioteki kodów QR o wysokiej wydajności zbudowanej specjalnie dla .NET, do odczytywania kodów QR z obrazów za pomocą kilku lini kodu C#.

Niezależnie od tego, czy tworzysz oprogramowanie do zarządzania zapasami, integrujesz uwierzytelnianie dwuskładnikowe, czy po prostu dekodujesz URL z zrzutów ekranu, IronQR to ułatwia.

Czym jest IronQR?

IronQR to potężna biblioteka kodów QR dla C#, opracowana w celu stworzenia potężnego czytnika i pisarza kodów QR dla programistów .NET. IronQR został zaprojektowany zarówno do generowania, jak i skanowania kodów QR, a także obsługuje odczyt z różnych formatów obrazów, co czyni go idealnym do użytku w aplikacjach desktopowych, internetowych czy serwerowych. Dzięki tej bibliotece możesz tworzyć dokładne narzędzia do odczytu kodów QR, które zautomatyzują cały proces rozpoznawania i odczytu kodów QR.

Najważniejsze cechy

  • Odczytuj i generuj kody QR z łatwością.
  • Obsługa formatów obrazów JPEG, PNG, BMP i innych.
  • Wysoka prędkość działania i dokładne wykrywanie dla łatwego wyodrębniania danych kodów QR.
  • Działa na projektach .NET Framework, .NET Core, .NET Standard (2.0+), oraz .NET 6/7+.
  • Oferuje wsparcie międzyplatformowe, więc możesz pracować w swoim ulubionym środowisku aplikacji i systemie operacyjnym, czy to Windows, Linux, czy jakimkolwiek innym wspieranym środowisku.

W przeciwieństwie do alternatyw z otwartym źródłem, IronQR koncentruje się na stabilności klasy enterprise, licencjonowaniu komercyjnym oraz wsparciu profesjonalnym, czyniąc go doskonałym rozwiązaniem dla aplikacji kluczowych dla biznesu.

Konfiguracja IronQR w Twoim projekcie C

Zanim będziesz mógł zacząć skanować kody QR, przejdźmy przez sposób skonfigurowania IronQR w twojej aplikacji .NET.

Zainstaluj przez NuGet

Możesz zainstalować IronQR bezpośrednio z Konsoli Menedżera Pakietów NuGet:

Install-Package IronQR

Alternatywnie, użyj GUI NuGet w Visual Studio, wyszukując IronQR, i kliknij "Zainstaluj":

Jak odczytać QR z obrazu w C#: Rysunek 2 - ekran Menedżera pakietów NuGet IronQR

Dodawanie przestrzeni nazw i podstawowa konfiguracja

Po zainstalowaniu, uwzględnij następującą przestrzeń nazw w pliku C#:

using IronSoftware.Drawing;
using IronQR;
using IronSoftware.Drawing;
using IronQR;
Imports IronSoftware.Drawing
Imports IronQR
$vbLabelText   $csharpLabel

Uwaga: IronSoftware.Drawing jest używany do obsługi formatów obrazów w sposób międzyplatformowy.

Odczytywanie kodu QR z obrazu

Zanurzmy się, jak faktycznie odczytać kod QR z pliku za pomocą IronQR.

Obsługiwane formaty obrazów

IronQR obsługuje wiele typów formatów obrazów, w tym:

  • PNG
  • JPG/JPEG
  • BMP
  • GIF
  • TIFF

Ta elastyczność pozwala pracować praktycznie z każdym źródłem obrazu, od zdjęć z aparatu po zeskanowane dokumenty.

Podstawowy przykład kodu

Przyjrzyjmy się bliżej, jak można użyć tej biblioteki do łatwego dekodowania kodów QR. Oto minimalny przykład, który odczytuje pojedynczy kod QR z wartością tekstową "Hello World!" z pliku graficznego, używając klasy Bitmap i strumienia plików do ładowania obrazu:

using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image using a file stream
        using var stream = File.OpenRead("sample-qr.png");
        var bitmapImage = AnyBitmap.FromStream(stream);
        QrImageInput qrImageInput = new QrImageInput(bitmapImage );
        // Read the QR code
        QrReader qrReader = new QrReader();
        try
        {
     // Use the QR read method to read the values within your QR code(s)
            IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
            // Output the decoded value
            foreach (var result in results)
            {
                Console.WriteLine("QR Code Value: " + result.Value);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error reading QR code: " + ex.Message);
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image using a file stream
        using var stream = File.OpenRead("sample-qr.png");
        var bitmapImage = AnyBitmap.FromStream(stream);
        QrImageInput qrImageInput = new QrImageInput(bitmapImage );
        // Read the QR code
        QrReader qrReader = new QrReader();
        try
        {
     // Use the QR read method to read the values within your QR code(s)
            IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
            // Output the decoded value
            foreach (var result in results)
            {
                Console.WriteLine("QR Code Value: " + result.Value);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error reading QR code: " + ex.Message);
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Friend Class Program
	Shared Sub Main()
		' Load the image using a file stream
		Dim stream = File.OpenRead("sample-qr.png")
		Dim bitmapImage = AnyBitmap.FromStream(stream)
		Dim qrImageInput As New QrImageInput(bitmapImage)
		' Read the QR code
		Dim qrReader As New QrReader()
		Try
	 ' Use the QR read method to read the values within your QR code(s)
			Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
			' Output the decoded value
			For Each result In results
				Console.WriteLine("QR Code Value: " & result.Value)
			Next result
		Catch ex As Exception
			Console.WriteLine("Error reading QR code: " & ex.Message)
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik konsoli

Jak odczytać QR z obrazu w C#: Rysunek 3 - wynik konsoli wartości kodu QR

Ten kod ładuje obraz kodu QR, odczytuje pierwszy wykryty kod QR i drukuje zdekodowaną zawartość. Proste i skuteczne. Stąd możesz zapisać wartości kodu QR do dalszego użytku.

Obsługa wielu kodów QR

Jeśli twój obraz zawiera wiele kodów QR (np. arkusz etykiet produktów), możesz je wszystkie wyodrębnić. W tym przykładzie przeskanujemy obraz kodu QR za pomocą naszego programu:

Jak odczytać QR z obrazu w C#: Rysunek 4 - Obraz z wieloma kodami QR

using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image from file
        var inputImage = AnyBitmap.FromFile("SampleCodes.png");
        QrImageInput qrImageInput = new QrImageInput(inputImage);
        // Read the QR code
        QrReader qrReader = new QrReader();
        IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
        // Output the decoded value
        foreach (var result in results)
        {
            Console.WriteLine("QR Code Value: " + result.Value);
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image from file
        var inputImage = AnyBitmap.FromFile("SampleCodes.png");
        QrImageInput qrImageInput = new QrImageInput(inputImage);
        // Read the QR code
        QrReader qrReader = new QrReader();
        IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
        // Output the decoded value
        foreach (var result in results)
        {
            Console.WriteLine("QR Code Value: " + result.Value);
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Friend Class Program
	Shared Sub Main()
		' Load the image from file
		Dim inputImage = AnyBitmap.FromFile("SampleCodes.png")
		Dim qrImageInput As New QrImageInput(inputImage)
		' Read the QR code
		Dim qrReader As New QrReader()
		Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
		' Output the decoded value
		For Each result In results
			Console.WriteLine("QR Code Value: " & result.Value)
		Next result
	End Sub
End Class
$vbLabelText   $csharpLabel

Wynik

Jak odczytać QR z obrazu w C#: Rysunek 5 - wynik wartości kodu QR

Typowe zastosowania dla skanowania kodów QR

Oto kilka scenariuszy z prawdziwego świata, w których odczytywanie kodów QR z obrazów jest wartościowe:

  • Zarządzanie zasobami i inwentaryzacją: Automatyzuj identyfikację przedmiotów poprzez skanowanie kodów QR z obrazów opakowań.
  • Dwuskładnikowe uwierzytelnianie (2FA): Wyodrębnij kody QR z ekranów konfiguracji 2FA, aby wspomóc bezpieczną konfigurację.
  • Integracja aplikacji mobilnych: Uruchamiaj adresy URL mobilne lub specyficzne dla aplikacji linki głębokie poprzez skanowanie udostępnionych zrzutów ekranów QR.
  • Bilety na wydarzenia: Walidacja kodów QR biletów wysłanych e-mailem lub wyświetlanych na ekranie.
  • Bramki płatności: Wydobądź dane płatnicze zawarte w kodach QR dla aplikacji fintech.

We wszystkich tych przypadkach kluczowe jest szybkie i dokładne rozpoznanie — coś, co IronQR obsługuje z łatwością.

Porady w razie problemów

Jeśli napotkasz problemy z odczytywaniem kodów QR, rozważ następujące opcje:

Niska jakość obrazu

Rozmazane lub niskiej rozdzielczości obrazy mogą utrudniać wykrycie kodu QR. Używaj jak najlepszych wejść, gdy to możliwe.

Kod QR Niewykryty

Upewnij się, że obraz nie jest zbyt ciemny, ma silny kontrast, a kod QR nie jest zasłonięty. Spróbuj przyciąć obraz, aby skupić się na obszarze kodu QR.

Obsługa wyjątków

Zawsze umieszczaj logikę odczytu kodów QR w blokach try-catch, aby płynnie obsługiwać uszkodzone pliki lub nieoczekiwane formaty:

try
{
    IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
    // Output the decoded value
    foreach (var result in results)
    {
        Console.WriteLine("QR Code Value: " + result.Value);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error reading QR code: " + ex.Message);
}
try
{
    IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
    // Output the decoded value
    foreach (var result in results)
    {
        Console.WriteLine("QR Code Value: " + result.Value);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error reading QR code: " + ex.Message);
}
Try
	Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
	' Output the decoded value
	For Each result In results
		Console.WriteLine("QR Code Value: " & result.Value)
	Next result
Catch ex As Exception
	Console.WriteLine("Error reading QR code: " & ex.Message)
End Try
$vbLabelText   $csharpLabel

Podsumowanie

Odczytywanie kodów QR z obrazów w języku C# nie musi być trudne. Dzięki IronQR możesz zintegrować skanowanie kodów QR ze swoimi aplikacjami .NET za pomocą zaledwie kilku linii kodu. Jego prostota, kompatybilność międzyplatformowa i doskonała wydajność sprawiają, że jest to narzędzie z wyboru dla programistów pracujących nad nowoczesnymi systemami obsługującymi kody QR.

Jeśli chcesz rozszerzyć tę funkcjonalność, rozważ zapoznanie się z:

Zainstaluj bezpłatną wersję próbną IronQR, aby rozpocząć pracę już dziś i dowiedzieć się, w jaki sposób ta biblioteka może usprawnić Twoje zadania związane z kodami QR.

Często Zadawane Pytania

Jak odczytać kody QR z obrazów w języku C#?

Możesz użyć IronQR do odczytu kodów QR z obrazów w języku C#. IronQR udostępnia metody skanowania i wyodrębniania danych z kodów QR z różnych formatów obrazów, takich jak PNG, JPG i TIFF, przy minimalnym nakładzie kodu.

Jakie kroki należy wykonać, aby skonfigurować IronQR w projekcie .NET?

Aby skonfigurować IronQR w projekcie .NET, należy użyć konsoli NuGet Package Manager Console z poleceniem Install-Package IronQR lub znaleźć IronQR w graficznym interfejsie NuGet Package Manager w programie Visual Studio i kliknąć „Install”.

W jaki sposób IronQR może pomóc w odczytywaniu kodów QR z obrazów o niskiej jakości?

IronQR jest zaprojektowany do odczytu kodów QR z obrazów o różnej jakości. Jednak aby uzyskać najlepsze wyniki, upewnij się, że obraz ma dobry kontrast i skup się na obszarze kodu QR. Jeśli wykrywanie nie powiedzie się, spróbuj poprawić jakość obrazu lub go przyciąć.

Czy IronQR może odczytać wiele kodów QR z jednego obrazu?

Tak, IronQR może wykrywać i odczytywać wiele kodów QR z jednego obrazu. Jest to przydatne podczas przetwarzania dokumentów lub etykiet zawierających wiele kodów QR.

Jakie są typowe zastosowania odczytu kodów QR w aplikacjach .NET?

Typowe zastosowania obejmują zarządzanie zapasami, uwierzytelnianie dwuskładnikowe, integrację aplikacji mobilnych, sprzedaż biletów na wydarzenia oraz bramki płatnicze. IronQR ułatwia korzystanie z tych aplikacji, zapewniając szybkie i niezawodne odczytywanie kodów QR.

W jaki sposób IronQR zapewnia kompatybilność między platformami?

IronQR obsługuje .NET Framework, .NET Core, .NET Standard oraz .NET 6/7+, zapewniając kompatybilność międzyplatformową dla systemów Windows, Linux i innych środowisk.

Co należy zrobić, jeśli IronQR nie odczyta kodu QR?

Jeśli IronQR nie odczyta kodu QR, sprawdź jakość obrazu pod kątem ostrości i kontrastu. Upewnij się, że na kodzie QR nie ma żadnych przeszkód i rozważ przycięcie obrazu, aby skupić się na obszarze kodu QR. Jeśli problemy nadal występują, sprawdź, czy format pliku jest obsługiwany.

Jak radzić sobie z wyjątkami podczas korzystania z IronQR do odczytu kodów QR?

Aby obsłużyć wyjątki, należy umieścić kod IronQR w blokach try-catch. Takie podejście pomaga w płynnym zarządzaniu problemami, takimi jak uszkodzone pliki lub nieobsługiwane formaty.

Jakie są zalety korzystania z IronQR do przetwarzania kodów QR?

IronQR oferuje wysoką wydajność, obsługuje wiele formatów obrazów i zapewnia stabilność na poziomie Enterprise. Łatwo go zintegrować z różnymi aplikacjami .NET, co czyni go idealnym rozwiązaniem dla programistów poszukujących wydajnych rozwiązań do przetwarzania kodów QR.

Jak mogę poprawić dokładność wykrywania kodów QR za pomocą IronQR?

Popraw dokładność wykrywania, używając wysokiej jakości obrazów o dobrym kontraście i ostrości. Upewnij się, że kody QR nie są zasłonięte, i w razie potrzeby rozważ zastosowanie technik przetwarzania wstępnego obrazów.

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

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie