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

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

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:

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
Wynik

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
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:
- Generowanie kodów QR do tworzenia własnych kodów do skanowania.
- Integracja z IronBarcode lub IronOCR zapewnia jeszcze szersze możliwości skanowania. Gotowi, aby rozpocząć?
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.




