QR Code lesen — Typ und Format erkennen in C

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

Identifizieren Sie das Format eines gescannten QR-Codes zur Laufzeit. Lesen Sie QrResult.QrType, um die Symbolik zu erkennen und formattypische Verarbeitungslogik für unterschiedliche Eingabequellen zu entwickeln.

Wenn eine Anwendung QR-Codes aus mehreren Quellen akzeptiert, ist das Format nicht immer vorhersehbar. Eine Logistikplattform könnte standardmäßige QR-Codes von Versandetiketten zusammen mit kompakten Micro-QR-Codes von Produkttags erhalten. Ein Dokumentenverarbeitungssystem könnte Codes scannen, die in PDFs eingebettet sind, zusammen mit solchen, die auf physischen Medien gedruckt sind. Das Lesen von QrResult.QrType gibt der Anwendung Einblick, welches Format erkannt wurde, sodass es möglich ist, Eingaben zu validieren, Daten zum richtigen Handler zu leiten oder nicht unterstützte Formate zur Überprüfung zu protokollieren.

Diese Anleitung zeigt, wie das QR-Code-Format aus den Scan-Ergebnissen mit der IronQR-Bibliothek abgerufen werden kann. Entwickler, die noch keinen QR-Code gescannt haben, sollten zuerst mit der Anleitung QR-Codes aus Bild lesen beginnen.

Schnellstart: QR-Code-Typ lesen

Laden Sie ein Bild, scannen Sie es mit QrReader und greifen Sie auf das erkannte Format zu.

  1. Installieren Sie IronQR mit NuGet Package Manager

    PM > Install-Package IronQR
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var input = new QrImageInput("qr-code.png");
    var results = new QrReader().Read(input);
    Console.WriteLine(results.First().QrType);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronQR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer

Wie lese ich den QR-Code-Typ?

Um den Typ eines QR-Codes zu lesen, laden Sie das Bild in ein QrImageInput, übergeben Sie es an QrReader.Read() und greifen Sie auf QrType auf dem zurückgegebenen QrResult zu. Die Eigenschaft gibt einen QrEncoding-Enum-Wert zurück, der die erkannte Symbolik identifiziert.

Eingabe

Der nachfolgende QR-Code kodiert https://ironsoftware.com und wird gescannt, um seinen Typ zu extrahieren.

QR-Code, der https://ironsoftware.com kodiert, wird als Eingabe für die Typenerkennung verwendet
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type.cs
using IronQr;
using System.Drawing;
using System.Linq;

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

// Load the asset into a QrImageInput object
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 type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}");
Imports IronQr
Imports System.Drawing
Imports System.Linq

' Import an image containing a QR code
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into a QrImageInput object
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 type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}")
$vbLabelText   $csharpLabel

QrType gibt einen QrEncoding-Enum-Wert wie QrEncoding.QRCode, QrEncoding.MicroQRCode oder QrEncoding.RMQRCode zurück. Dies macht es sicher, ihn direkt in einer switch-Anweisung zu verwenden, ohne Parsing oder Zeichenfolgenvergleich.

Ausgabe

Konsolenausgabe, die den erkannten QR-Code-Typ zeigt

Wie leite ich die Verarbeitung nach QR-Code-Format?

Wenn eine Anwendung QR-Codes aus mehreren Quellen erhält, wird nicht jede Eingabe dasselbe Format haben. Verwenden Sie ein switch auf QrResult.QrType, um jeden erkannten Code gemäß seinem QrEncoding-Wert an den richtigen Handler zu leiten. Dies hält format-spezifische Logik isoliert und macht das Hinzufügen neuer Format-Branches unkompliziert.

Verwenden des gleichen Eingabe-QR-Codes von oben:

:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type-all.cs
using IronQr;
using IronQr.Enum;
using System.Drawing;

// Import an image containing QR codes
var inputImage = Image.FromFile("sample.jpg");

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

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

// Read all embedded QR codes from the image
IEnumerable<QrResult> results = reader.Read(imageInput);

// Route processing based on the detected QR code format
foreach (QrResult result in results)
{
    switch (result.QrType)
    {
        case QrEncoding.QRCode:
            Console.WriteLine($"Standard QR Code: {result.Value}");
            break;
        case QrEncoding.MicroQRCode:
            Console.WriteLine($"Micro QR Code: {result.Value}");
            break;
        case QrEncoding.RMQRCode:
            Console.WriteLine($"RMQR Code: {result.Value}");
            break;
        default:
            Console.WriteLine($"Other format ({result.QrType}): {result.Value}");
            break;
    }
}
Imports IronQr
Imports IronQr.Enum
Imports System.Drawing

' Import an image containing QR codes
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)

' Create a QR Reader object
Dim reader As New QrReader()

' Read all embedded QR codes from the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

' Route processing based on the detected QR code format
For Each result As QrResult In results
    Select Case result.QrType
        Case QrEncoding.QRCode
            Console.WriteLine($"Standard QR Code: {result.Value}")
        Case QrEncoding.MicroQRCode
            Console.WriteLine($"Micro QR Code: {result.Value}")
        Case QrEncoding.RMQRCode
            Console.WriteLine($"RMQR Code: {result.Value}")
        Case Else
            Console.WriteLine($"Other format ({result.QrType}): {result.Value}")
    End Select
Next
$vbLabelText   $csharpLabel

Jeder case zielt auf einen bestimmten QrEncoding-Wert. Der default-Zweig fängt jedes Format ab, das nicht explizit behandelt wird, sodass die Schleife bei unerwarteter Eingabe nicht stillschweigend fehlschlägt. Fügen Sie weitere Fälle hinzu, wenn die Anwendung zusätzliche Formate unterstützen muss.

Ausgabe

Konsolenausgabe, die das ergebnisbasierte Routing für jeden erkannten QR-Code zeigt

Was gibt QrResult.QrType zurück?

QrType ist eine QrEncoding-Enum-Eigenschaft auf jedem QrResult, die die vom Scanner erkannte Symbolik identifiziert. Sie wird während QrReader.Read() automatisch befüllt und erfordert keine zusätzliche Konfiguration. Fügen Sie using IronQr.Enum; hinzu, um QrEncoding-Werte direkt in einem switch zu verwenden.

Wert Beschreibung
QrEncoding.QRCode Standard-QR-Code, das am häufigsten verwendete Format in allen Branchen
QrEncoding.MicroQRCode Kompakte Variante, entworfen für kleine Flächen mit begrenztem Druckbereich
QrEncoding.RMQRCode Rechteckiger Micro-QR-Code, optimiert für schmale, längliche Etikettenformen (rMQR)

QrType ist schreibgeschützt und spiegelt wider, was der Scanner im Bild erkannt hat. Sein Wert hängt nicht davon ab, wie der QR-Code generiert wurde.


Was sind häufige Anwendungsfälle für QrType?

  • Logistik und Versand: Erkennung, ob ein Etikett einen standardmäßigen QR-Code oder einen kompakten Micro-QR trägt, und jeden in die richtige Parsing-Pipeline leiten.
  • Dokumentenverarbeitung: Validierung, dass ein gescanntes Dokument das erwartete Format enthält, bevor sein Wert zum Abgleich von Datensätzen extrahiert wird.
  • Mehrformat-Kioske: Akzeptieren verschiedener QR-Formate an einer einzigen Station und jeden ohne manuelle Eingriffe an den entsprechenden Handler weiterleiten.
  • Audit und Compliance: Protokollierung der Symbolart neben dekodierten Werten, um eine überprüfbare Aufzeichnung von Eingabeformaten über Chargen hinweg zu erstellen.
  • Qualitätssicherung: Überprüfung, dass generierte QR-Codes als beabsichtigter Typ zurückgescannt werden, um zu bestätigen, dass die Ausgabe der Spezifikation entspricht.

Für mehr über das Lesen von QR-Code-Daten nach der Erkennung des Typs, siehe die Anleitung QR-Code-Wert lesen und das vollständige IronQR-Feature-Set.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 63,625 | Version: 2026.4 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronQR
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihre URL zu einem QR-Code wird.