IRONSOFTWAREHOME

How to Read QR Codes from Images in C#

Curtis Chau
Curtis Chau
Updated: 9 maja 2026

IronQR umozliwia programistom odczytywanie kodow QR z roznych formatow obrazow w C#, ladujac obrazy za pomoca IronDrawing, tworzac obiekt QrImageInput i korzystajac z metody BarcodeReader.Read do efektywnego dekodowania danych QR.

Quickstart: Odczytaj kod QR z obrazu w C#

Jak odczytać kody QR z różnych formatów obrazów?

IronQR zapewnia wbudowane wsparcie dla odczytywania kodów QR z różnych formatów obrazów. Ta funkcjonalność wykorzystuje zaawansowane modele uczenia maszynowego, aby zapewnić dokładne dekodowanie w różnych formatach mediów. Obsługiwane formaty to:

  • Joint Photographic Experts Group (JPEG)
  • Portable Network Graphics (PNG)
  • Graphics Interchange Format (GIF)
  • Format plików graficznych z tagami (TIFF)
  • Plik obrazu bitmapowego (BMP)
  • WBMP
  • WebP
  • Ikona (ico) WMF
  • RawFormat (surowy)

Wsparcie dla tego formatu jest umożliwiane przez bibliotekę open-source IronDrawing, która efektywnie przetwarza obrazy. Można przetwarzać kody QR z aparatów cyfrowych, skanerów, urządzeń mobilnych lub pobrań sieciowych bez konwersji formatu.

Przykładowy kod QR z wyraźnym czarno-białym wzorem pokazującym kwadraty pozycjonujące i moduły danych do testowania skanowania obrazu
  1. 1Install IronQR with NuGet Package Manager

    PM > Install-Package IronQR

  2. 2Skopiuj i uruchom ten fragment kodu.

    // Import necessary IronQR and IronDrawing namespaces
    using IronSoftware.Drawing; 
    using IronBarcode;
    
    public class QRCodeReader
    {
        public static void Main()
        {
            // Load an image from a file path
            using (var inputImage = Image.FromFile("path/to/your/image/file.webp"))
            {
                // Create a QrImageInput object from the image
                var qrImageInput = new QrImageInput(inputImage);
    
                // Decode the Kod QR from the image
                var result = BarcodeReader.Read(qrImageInput);
    
                // Iterate through each detected Kod QR and display its information
                foreach (var barcodeResult in result.Barcodes)
                {
                    Console.WriteLine($"QR Code Data: {barcodeResult.Value}");
                }
            }
        }
    }
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

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

Uwaga: Zastąp "path/to/your/image/file.webp" rzeczywistą ścieżką do pliku obrazu z kodem QR.

Ciekawy, jaka jest wartość kodu QR w przykładowych obrazach? Wypróbuj, używając fragmentu kodu!

Dlaczego IronQR obsługuje wiele formatów obrazów?

Odczyt kodu QR odnosi się do skanowania i dekodowania informacji przechowywanych w kodzie QR. Zazwyczaj odbywa się to za pomocą kamery lub skanera połączonego z oprogramowaniem, które może interpretować dane z kodu QR. Informacje w kodzie QR mogą być tekstem, adresami URL, danymi kontaktowymi lub innymi formami danych.

Wsparcie IronQR dla wielu formatów jest kluczowe dla zastosowań w rzeczywistym świecie, gdzie kody QR pojawiają się w różnych kontekstach — od materiałów marketingowych i opakowań produktów po dokumenty cyfrowe i treści webowe. Obsługując różnorodne formaty, IronQR zapewnia, że programiści mogą budować solidne aplikacje bez martwienia się o kompatybilność formatu obrazów. Dowiedz się więcej o możliwościach odczytu IronQR, aby zrozumieć, jak ta elastyczność usprawnia Twój proces tworzenia oprogramowania.

Kiedy powinienem używać każdego formatu obrazu?

Różne formaty obrazów służą różnym celom w przetwarzaniu kodów QR:

  • PNG: Najlepszy do kodów QR wymagających przeźroczystości lub gdy jakość obrazu jest kluczowa. Bezstratna kompresja PNG zapewnia, że wzory kodów QR pozostają ostre i czytelne.
  • JPEG: Idealne do zdjęć zawierających kody QR lub gdy rozmiar pliku ma znaczenie. Używaj wyższych ustawień jakości (80%+) aby zapobiec wpływowi artefaktów kompresji na czytelność.
  • TIFF: Doskonałe do celów archiwalnych lub do pracy z zeskanowanymi dokumentami w środowiskach korporacyjnych.
  • WebP: Nowoczesny format oferujący doskonałą kompresję zachowując jakość, idealny do aplikacji webowych.

Dla optymalnych wyników z dowolnym formatem, upewnij się, że Twoje obrazy mają wystarczającą rozdzielczość (przynajmniej 300 DPI dla drukowanych kodów QR) i kontrast. Sprawdź nasze zaawansowane przykłady odczytu QR dla technik optymalizacji specyficznych dla formatów.

Co się dzieje, jeśli jakość obrazu jest niska?

IronQR obejmuje funkcje tolerancji błędów, aby radzić sobie z niedoskonałymi obrazami. Gdy masz do czynienia z obrazami niskiej jakości, biblioteka stosuje kilka strategii:

  1. Korekcja bledow: Kody QR zawieraja funkcje korekcji bledow (poziomy L, M, Q, H), umozliwiajace odzyskanie danych nawet wtedy, gdy do 30% kodu jest uszkodzone.
  2. Ulepszenie uczenia maszynowego: modele ML IronQR wykrywaja i kompensuja czeste problemy takie jak rozmazanie, znieksztalcenia i slabe oswietlenie.
  3. Przetwarzanie wstepne: Automatyczne ulepszanie obrazu poprawia kontrast i ostrosc przed probami dekodowania.

Dla trudnych scenariuszy, rozważ użycie opcji niestandardowego trybu odczytu QR, aby dostroić proces odczytu:

// Example: Reading Kod QRs with enhanced error correction
using IronBarcode;

public class EnhancedQRReader
{
    public static void ReadPoorQualityImage()
    {
        // Configure reader with multiple attempts and error correction
        var options = new BarcodeReaderOptions
        {
            Speed = ReadingSpeed.Detailed, // More thorough scanning
            ExpectMultipleBarcodes = true,  // Check for multiple codes
            ExpectBarcodeTypes = BarcodeType.QRCode // Focus on Kod QRs only
        };

        using (var inputImage = Image.FromFile("blurry_qr_code.jpg"))
        {
            var qrImageInput = new QrImageInput(inputImage);
            var results = BarcodeReader.Read(qrImageInput, options);
            
            foreach (var result in results.Barcodes)
            {
                Console.WriteLine($"Decoded: {result.Value}");
                Console.WriteLine($"Confidence: {result.Confidence}%");
            }
        }
    }
}
C#

Pobieranie wartości z kodu QR

[//]: # (This is a comment that will be hidden.) Wartość jest wspomniana wcześniej w powyższym przykładzie. Zajmę bardziej wyjaśniające, ale zwięzłe stanowisko przy ponownym definiowaniu)

Większość funkcji IronQR zwraca kolekcję, aby obsłużyć wiele wykryć. Poniewaz results jest sekwencja obiektow, sama nie posiada wlasciwosci Value. Przykladowy kod wybiera specjalnie pierwszy QrResult z kolekcji i pobiera jego Value.

using System;
using System.Collections.Generic;
using System.Linq;
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 an 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}");

Wykrywanie pozycji kodu QR w obrazie

IronQR idzie poza proste dekodowanie, aby dokładnie zlokalizować miejsce, gdzie kod QR znajduje się w obrębie obrazu. To pozycjonowanie wykorzystuje standardowy system wspolrzednych, gdzie PointF (0,0) reprezentuje lewy gorny rog obrazu. Dokladne wspolrzedne przestrzenne rogów kodu QR sa dostepne poprzez tablice Points[].

W przykładzie współrzędne dla wszystkich czterech punktów wykrytego kodu QR są pobierane i drukowane na konsoli.

Zwróć uwagę: Współrzędne zwracane przez tę funkcję są przechowywane w ścisłej sekwencji "zygzak": lewy-górny, prawy-górny, lewy-dolny, a na końcu prawy-dolny
using System;
using System.Collections.Generic;
using IronQr;
using System.Drawing;
using System.Linq;

// Import an image containing a QR code
var inputImage = Image.FromFile("urlQr.png");

// Load the asset into a QrImageInput object
var imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
var reader = new QrReader();

// Read the input and get all embedded QR codes
IEnumerable<QrResult> results = reader.Read(imageInput);

// [TL, TR, BL, BR]
string[] labels = { "Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right" };

var points = results.First().Points;

for (int i = 0; i < points.Length; i++)
{
    Console.WriteLine($"{labels[i]}: {points[i].X}, {points[i].Y}");
}

Wprowadź kod QR

Kod QR

Wynik

Zwróć uwagę, że system zapisał w konsoli dokładne współrzędne przestrzenne każdego rogu kodu QR.

Wykrywanie krawędzi QR

Obsługiwane typy kodów QR

Obsługiwanych jest wiele typów kodów QR, zarówno do tworzenia, jak i odczytu. IronQR zapewnia kompleksową obsługę różnych formatów kodów QR, aby sprostać różnorodnym potrzebom aplikacji. Więcej informacji na temat obsługiwanych formatów QR można znaleźć w naszej dokumentacji. Poniżej przedstawiono obsługiwane typy kodów QR:

  • QRCode: Standardowy kod QR najczesciej uzywany dzisiaj. Może przechowywać do 7089 znaków numerycznych lub 4296 znaków alfanumerycznych, dzięki czemu nadaje się do adresów URL stron internetowych, danych kontaktowych i innych zastosowań.
Przykładowy kod QR z wyraźnym czarno-białym wzorem pokazującym kwadraty pozycjonujące i moduły danych do testowania skanowania obrazu
  • MicroQRCode: Mniejsza wersja standardowego kodu QR zaprojektowana dla ograniczonej przestrzeni. Może pomieścić do 35 znaków numerycznych lub 21 znaków alfanumerycznych, co idealnie nadaje się do małych opakowań lub niewielkich etykiet drukowanych.
Standardowy kod QR z wzorami lokalizacyjnymi i modułami danych ilustrującymi typową strukturę kodu QR
  • RMQRCode:RMQRCode (Prostokatny mikro QR Code) jest kompaktowa prostokatna wersja zamiast kwadratowej. Ta wersja pozwala na elastyczność w zakresie proporcji obrazu, co jest przydatne w aplikacjach, w których dostępna jest prostokątna przestrzeń.
Przykład prostokątnego kodu QR przedstawiający format inny niż kwadratowy ze standardowymi znacznikami pozycjonowania i wzorami danych

Jak wybrać odpowiedni typ kodu QR?

Wybór odpowiedniego typu kodu QR zależy od konkretnego przypadku użycia i ograniczeń:

  • Standardowy kod QR: Wybierz tę opcję do zastosowań ogólnych, gdzie przestrzeń nie jest ograniczona, a potrzebna jest maksymalna pojemność danych. Idealne rozwiązanie dla adresów URL, danych logowania do sieci Wi-Fi, kontaktów vCard lub szczegółowych informacji o produktach. Zobacz nasze przykłady generowania kodów QR, aby poznać szczegóły wdrożenia.

  • Mikro kod QR: Idealny do pracy z małymi powierzchniami, takimi jak elementy elektroniczne, zawieszki do biżuterii lub urządzenia medyczne. Pomimo ograniczonej wydajności, idealnie nadaje się do numerów seryjnych, prostych adresów URL lub podstawowych kodów śledzenia.

  • Kod RMQR: Wybierz kody prostokątne, gdy dostępna przestrzeń ma określone ograniczenia wymiarowe, takie jak wąskie etykiety na produktach cylindrycznych lub wydłużone przestrzenie na krawędziach opakowań.

Jakie są ograniczenia dotyczące przechowywania danych?

Zrozumienie pojemności danych pomaga zoptymalizować wdrożenie kodu QR:

Typ kodu QRTylko liczbyAlfanumerycznyBinaryKanji
Standardowy kod QR7 0894 2962 9531 817
Micro QR3521159
RMQRZmiennaZmiennaZmiennaZmienna

Podczas planowania przechowywania danych należy wziąć pod uwagę następujące czynniki:

  • Używaj skracaczy adresów URL dla linków internetowych, aby maksymalnie wykorzystać dostępną przestrzeń
  • Wprowadź kompresję danych dla dużych zbiorów danych
  • Wybierz odpowiedni poziom korekty błędów (wyższy poziom korekty zmniejsza wydajność)

W przypadku zaawansowanych wdrożeń zapoznaj się z naszym przewodnikiem po generowaniu stylizowanych kodów QR, aby zachować równowagę między estetyką a pojemnością danych.

Kiedy należy używać kodów Micro lub RMQR?

Kody Micro iRMQRsprawdzają się doskonale w określonych sytuacjach:

Mikro kody QR idealnie nadają się do:

  • Płytki obwodów elektronicznych wymagające śledzenia komponentów
  • Małe urządzenia medyczne wymagające identyfikatorów pacjentów lub leków
  • Autentyfikacja biżuterii przy ograniczonej przestrzeni na grawerunek
  • Miniaturowe etykiety produktów w produkcji

KodyRMQRnajlepiej sprawdzają się w przypadku:

  • Wąskie etykiety wysyłkowe na rurach lub przewodach
  • Wydłużone przestrzenie na korpusach długopisów lub narzędziach
  • Materiały marketingowe w stylu banerów
  • Integracja z istniejącymi prostokątnymi elementami projektu

Oto praktyczny przykład odczytu różnych typów kodów QR:

using IronBarcode;
using IronSoftware.Drawing;

public class MultiTypeQRReader
{
    public static void ReadVariousQRTypes()
    {
        // Configure reader to handle all Kod QR types
        var options = new BarcodeReaderOptions
        {
            ExpectBarcodeTypes = BarcodeType.QRCode | 
                                BarcodeType.MicroQRCode | 
                                BarcodeType.RectangularMicroQRCode
        };

        string[] imagePaths = {
            "standard_qr.png",
            "micro_qr.png", 
            "rectangular_qr.png"
        };

        foreach (var path in imagePaths)
        {
            using (var image = Image.FromFile(path))
            {
                var qrInput = new QrImageInput(image);
                var results = BarcodeReader.Read(qrInput, options);
                
                foreach (var qr in results.Barcodes)
                {
                    Console.WriteLine($"Type: {qr.BarcodeType}");
                    Console.WriteLine($"Data: {qr.Value}");
                    Console.WriteLine($"Format: {qr.Format}");
                    Console.WriteLine("---");
                }
            }
        }
    }
}
C#

W przypadku wdrożeń produkcyjnych zapoznaj się z naszym przewodnikiem po pakietach NuGet, aby upewnić się, że masz odpowiedni pakiet dla swojej platformy, oraz sprawdź Dokumentację API, aby uzyskać wyczerpujące informacje na temat wszystkich dostępnych metod i właściwości.

Często Zadawane Pytania

Jakie formaty obrazów obsługuje IronQR do odczytywania kodów QR?

IronQR obsługuje odczyt kodów QR z wielu formatów obrazów, w tym JPEG, PNG, GIF, TIFF, BMP, WBMP, WebP, ICO, WMF i RawFormat. To kompleksowe wsparcie formatów jest możliwe dzięki IronDrawing, pozwalając na przetwarzanie kodów QR z różnych źródeł bez konwersji formatu.

Jak odczytać kod QR z pliku graficznego w języku C#?

Aby odczytać kod QR za pomocą IronQR, najpierw załaduj obraz za pomocą Image.FromFile(), utwórz obiekt QrImageInput na podstawie załadowanego obrazu, a następnie użyj BarcodeReader.Read(), aby zdekodować dane QR. Metoda zwraca wyniki, które można przeglądać, aby uzyskać dostęp do informacji o każdym wykrytym kodzie QR.

Jaka technologia umożliwia dokładne odczytywanie kodów QR w różnych typach nośników?

IronQR wykorzystuje zaawansowane modele uczenia maszynowego, aby zapewnić dokładne dekodowanie kodów QR w różnych typach mediów i formatach obrazów. To oparte na sztucznej inteligencji podejście pomaga zachować wysoką dokładność nawet w trudnych warunkach obrazu.

Czy mogę odczytać wiele kodów QR z jednego obrazu?

Tak, IronQR może wykrywać i odczytywać wiele kodów QR z jednego obrazu. Metoda BarcodeReader.Read zwraca zbiór wyników, umożliwiając iterację przez każdy wykryty kod QR za pomocą pętli foreach w celu uzyskania dostępu do danych poszczególnych kodów QR.

Jakie rodzaje danych można przechowywać w kodach QR odczytywanych przez IronQR?

IronQR może dekodować różne typy danych przechowywanych w kodach QR, w tym zwykły tekst, adresy URL, dane kontaktowe i inne formy danych ustrukturyzowanych. Dostęp do zdekodowanych informacji można uzyskać poprzez właściwość Value każdego obiektu BarcodeResult.

What types of QR codes can IronQR read?

IronQR can read various types of QR codes, including Standard QR Code, Micro QR Code, and RMQR Code, supporting different use cases and data capacities for applications requiring compact or rectangular formats.

When should I choose Micro or RMQR codes?

Choose Micro QR codes for small surfaces like circuit boards or medical devices and RMQR codes for rectangular labels like narrow shipping labels or marketing materials that require fitting into elongated spaces.

How does IronQR locate a QR code within an image?

IronQR uses a standard coordinate system to pinpoint where a QR code is located within an image. It retrieves and prints the exact spatial coordinates of the QR code's corners using the Points[] array.

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ęczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 74,386Wersja:2026.9właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronQR
nuget.org/packages/IronQR/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i wyszukaj "IronQR"
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

  1. Pobierz i rozpakuj IronQR do lokalizacji, takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań Visual Studio kliknij prawym przyciskiem myszy Odwołania. Wybierz Przeglądaj, "IronQR.dll"

Licencje od $999

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta