QR-Code .NET Core: QR-Codes in C# lesen und generieren
Bei der Entwicklung von Web- oder Enterprise auf Basis von .NET Core ist die Unterstützung von QR-Codes – beispielsweise für die Bestandsverfolgung, Zahlungsabwicklung oder Zwei-Faktor-Authentifizierung – eine häufige Anforderung. Anstatt Entwicklungszyklen für Low-Level-Codierungsalgorithmen aufzuwenden, können Sie auf eine spezialisierte Bibliothek zurückgreifen, die den gesamten Workflow abdeckt. IronQR bietet eine Komplettlösung für QR-Codes für .NET, die alles von der einfachen Generierung bis zum ML-gestützten Lesen und der erweiterten Fehlerkorrektur abdeckt.
Möchten Sie es selbst ausprobieren? Starten Sie noch heute Ihre kostenlose Testphase und sehen Sie, wie schnell Sie QR-Code-Funktionalität in Ihr Projekt integrieren können.
Wie installiert man die QR-Code-Bibliothek?
Die Installation von IronQR über NuGet dauert nur wenige Sekunden. Öffnen Sie Visual Studio, gehen Sie zu Tools > NuGet-Paket-Manager > NuGet-Pakete für die Lösung verwalten, suchen Sie nach IronQR und klicken Sie auf Installieren. Das Paket hat minimale Abhängigkeiten und ist sofort einsatzbereit für Windows, macOS und Linux.
Install-Package IronQR
IronQR ist kompatibel mit .NET Core 6, 7, 8, 9 und 10 sowie .NET Framework 4.6.2 und höher. Bei plattformübergreifenden Projekten übernimmt eine SkiaSharp-Integration die Bildverarbeitung auf Nicht-Windows-Laufzeitumgebungen. Die Bibliothek funktioniert mit ASP.NET Core Webanwendungen, Konsolenanwendungen und Desktop-Lösungen ohne zusätzliche Laufzeitkonfiguration. Nach der Installation stehen alle notwendigen Erweiterungsmethoden und -typen sofort zur Verfügung.
Wie liest man einen einfachen QR-Code aus einem Bild?
Das Auslesen von QR-Code-Daten aus Bilddateien erfordert nur wenige Codezeilen. Die Klasse QrReader verwendet ein fortschrittliches maschinelles Lernmodell, das die Bildqualität bewertet und den richtigen Segmentmodus automatisch auswählt, was Ihnen genaue Ergebnisse liefert, selbst wenn das Eingabebild nicht ideal ist.
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
Console.WriteLine($"QR Code Value: {qrCode.Value}");
Console.WriteLine($"URL: {qrCode.Url}");
}
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
Console.WriteLine($"QR Code Value: {qrCode.Value}");
Console.WriteLine($"URL: {qrCode.Url}");
}
Imports IronQr
Imports IronSoftware.Drawing
' Load image containing QR code
Dim inputBmp = AnyBitmap.FromFile("qr-sample.png")
' Create QrImageInput from the bitmap
Dim imageInput As New QrImageInput(inputBmp)
' Initialize QR Reader with ML model
Dim reader As New QrReader()
' Read and decode all QR codes in the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Output decoded text strings
For Each qrCode In results
Console.WriteLine($"QR Code Value: {qrCode.Value}")
Console.WriteLine($"URL: {qrCode.Url}")
Next
QR-Code Eingabe

Ausgabe

Die Methode QrReader.Read() verarbeitet die QrImageInput und gibt ein IEnumerable<QrResult> zurück, wobei jedes Ergebnis den dekodierten Text, die URL, falls eine kodiert war, und die räumliche Position des QR-Symbols im Bild enthält. Die Bibliothek akzeptiert Byte-Arrays, Dateipfade und AnyBitmap Objekte, was Ihnen Flexibilität für jede Projektarchitektur bietet – egal ob Sie von der Festplatte, einer Datenbank oder einem Live-Kamerafeed lesen.
Das dem Reader zugrunde liegende ML-Modell unterscheidet IronQR von rein algorithmischen Bibliotheken. Es bewältigt Unvollkommenheiten der realen Welt wie Bewegungsunschärfe, teilweise Verdeckung und ungleichmäßige Beleuchtung, ohne dass eine manuelle Vorverarbeitung oder Schwellenwertanpassung erforderlich ist.
Wie extrahiert man erweiterte QR-Code-Daten?
Über die grundlegende Wertdekodierung hinaus liefert IronQR Koordinaten, Rohdatensegmente und Informationen auf Modulebene aus jedem gescannten Symbol. Dies ist unerlässlich für Dokumentenverarbeitungs-Workflows, bei denen genau bekannt sein muss, wo sich ein QR-Code auf der Seite befindet, oder für Anwendungen, die mehrere Codes in einem einzigen Bild verarbeiten müssen.
using IronQr;
using IronSoftware.Drawing;
var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
// Access decoded value
Console.WriteLine($"Data: {qrCode.Value}");
// Get corner coordinate positions
foreach (PointF point in qrCode.Points)
{
Console.WriteLine($"Position: {point.X}, {point.Y}");
}
}
using IronQr;
using IronSoftware.Drawing;
var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
// Access decoded value
Console.WriteLine($"Data: {qrCode.Value}");
// Get corner coordinate positions
foreach (PointF point in qrCode.Points)
{
Console.WriteLine($"Position: {point.X}, {point.Y}");
}
}
Imports IronQr
Imports IronSoftware.Drawing
Dim inputBmp = AnyBitmap.FromFile("document-with-qr.png")
Dim imageInput As New QrImageInput(inputBmp)
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
For Each qrCode In results
' Access decoded value
Console.WriteLine($"Data: {qrCode.Value}")
' Get corner coordinate positions
For Each point As PointF In qrCode.Points
Console.WriteLine($"Position: {point.X}, {point.Y}")
Next
Next
QR-Eingabe

Erweiterte QR-Leseergebnisse

Die Sammlung QrResult.Points enthält die vier Eckkoordinaten des erkannten QR-Symbols im Pixelraum. Ihre Anwendung kann diese verwenden, um Begrenzungsrahmen auf Dokumentbildern zu überlagern, den QR-Bereich für die Weiterverarbeitung auszuschneiden oder die Standortdaten an ein nachgelagertes System weiterzugeben, das physische Koordinaten logischen Dokumentpositionen zuordnet.
IronQR verarbeitet Codes, die benutzerdefinierte eingebettete Logos, beschädigte Module oder niedrigauflösenden Input enthalten, durch dieselbe ML-Pipeline. Die Bibliothek erfordert keine separaten Vorverarbeitungsschritte – Erkennung und Dekodierung erfolgen in einem einzigen Read() Aufruf.
Wie beeinflussen Fehlerkorrekturstufen die Qualität von QR-Codes?
Die Fehlerkorrektur ist der Mechanismus, der es einem QR-Scanner ermöglicht, die Originaldaten wiederherzustellen, selbst wenn ein Teil des Codes verdeckt, schlecht gedruckt oder physisch beschädigt ist. Der QR-Code-Standard definiert vier Stufen – Niedrig (L), Mittel (M), Quartil (Q) und Hoch (H) –, bei denen jeweils Speicherkapazität gegen Schadensresistenz eingetauscht wird.
| Ebene | Wiederherstellungskapazität | Optimale Nutzung |
|---|---|---|
| L | ~7% | Klare Digitalanzeigen, maximale Datendichte |
| M | ~15% | Allgemeine Druckanwendungen |
| Q | ~25% | Industrieetiketten, mäßiger Verschleiß zu erwarten |
| H | ~30% | Eingebettete Logos, Oberflächen im Außenbereich oder stark beanspruchte Oberflächen |
Bei der Generierung von QR-Codes stellt die Angabe eines höheren Fehlerkorrekturniveaus sicher, dass die Ausgabe auch unter realen Scanbedingungen Bestand hat:
using IronQr;
using IronSoftware.Drawing;
// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Ausgabe

Der Konstruktor QrOptions akzeptiert den Fehlerkorrekturgrad und eine maximale Versionsnummer. Version-40-Codes speichern bis zu 7.089 numerische Zeichen, während Version-1-Codes nur 41 Zeichen speichern können. Durch die Festlegung einer niedrigeren maximalen Version wird die Ausgabegröße begrenzt, was nützlich ist, wenn Sie innerhalb eines Stapels einheitliche physische Abmessungen benötigen. Je höher das Fehlerkorrekturniveau, desto mehr Module werden für Redundanz reserviert, wodurch die Nettodatenkapazität in jeder Version reduziert wird.
Die Fehlertoleranzfunktion von IronQR geht mit dieser Eigenschaft einher – beim Lesen von Codes, die mit höheren Korrekturstufen erzeugt wurden, kann die Bibliothek Daten aus Codes wiederherstellen, die mit einem rein algorithmischen Decoder vollständig fehlschlagen würden.
Wie generiert man QR-Codes mit internationalen Zeichen?
IronQR unterstützt alle QR-Codierungsmodi : numerisch, alphanumerisch, Byte und Kanji. Für japanische Texte und andere Unicode-Inhalte wählt die Bibliothek automatisch die speichereffizienteste Kodierung aus:
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
' The library selects Kanji mode automatically
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
QR-Code-Ausgabe

Die Kanji-Kodierung speichert zwei Bytes pro Modul anstatt acht Bits, sodass ein japanischer QR-Code in derselben Version deutlich mehr Zeichen speichert als ein UTF-8-Byte-Modus-Äquivalent. Bei gemischten Inhalten – wie beispielsweise einer URL gefolgt von japanischem Text – segmentiert IronQR die Eingabe und kodiert jedes Segment im optimalen Modus. Sie müssen keine Segmentgrenzen angeben oder Kodierungshilfsfunktionen manuell aufrufen; Die Kodierungspipeline erledigt das für Sie.
Diese automatische Auswahl umfasst auch Extended Channel Interpretation (ECI)-Markierungen, die Scannern signalisieren, dass nicht standardmäßige Zeichensätze verwendet werden. Anwendungen, die auf internationale Märkte abzielen, können jeden Unicode-String direkt an QrWriter.Write() übergeben, ohne eine separate Konfiguration.
Wie verwendet man Payload-Generatoren für strukturierte QR-Daten?
Ein QR-Code, der eine einfache URL kodiert, eignet sich für die einfache Linkweitergabe, aber viele Anwendungen müssen strukturierte Daten kodieren – WLAN-Zugangsdaten, Visitenkarten im vCard-Format oder Ereignisdaten. Das manuelle Formatieren dieser Nutzdaten ist fehleranfällig; Ein fehlendes Semikolon oder eine falsche Feldreihenfolge führen dazu, dass Scanner die Daten falsch interpretieren.
IronQR stellt Payload-Hilfsfunktionen bereit, die diese strukturierten Zeichenketten korrekt erstellen:
using IronQr;
using IronSoftware.Drawing;
// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
using IronQr;
using IronSoftware.Drawing;
// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR code with URL payload
Dim urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
' Save QR as PNG image file
Dim qrImage As AnyBitmap = urlQrCode.Save()
qrImage.SaveAs("url-qr-code.png")
Console.WriteLine("QR code generated successfully.")
Erstellter QR-Code

Die Methode QrWriter.Write() akzeptiert entweder eine einfache Zeichenfolge oder ein strukturiertes Nutzlastobjekt. Bei WLAN-Netzwerken kodiert die Nutzlast die SSID, das Passwort und den Sicherheitstyp in einem Format, das von Android- und iOS-Scannern erkannt wird. Kontaktinformationen werden gemäß dem MeCard-Standard ausgegeben, der von den meisten mobilen QR-Code-Lesegeräten verwendet wird. Die Seite zur Generierungsfunktion dokumentiert alle unterstützten Payload-Typen und deren erforderliche Felder.
Die Bibliothek gibt Bilder in konfigurierbaren Pixelabmessungen aus. Für den Produktionseinsatz gewährleistet die Generierung von Codes mit einer Mindestgröße von 200x200 Pixeln ein zuverlässiges Scannen aus typischen Smartphone-Entfernungen. Größere Formate eignen sich für Außenanwendungen oder Druckanwendungen, bei denen der Scanabstand einen Meter überschreitet.
Wie kann man das Erscheinungsbild eines QR-Codes anpassen?
Mit IronQR haben Sie die Kontrolle über das visuelle Erscheinungsbild der generierten Codes, ohne die Lesbarkeit zu beeinträchtigen. Sie können die Vorder- und Hintergrundfarben ändern, ein individuelles Branding anwenden oder ein Logo in die Ruhezone in der Mitte einbetten.
using IronQr;
using IronSoftware.Drawing;
// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120); // Deep navy foreground
var lightColor = Color.White;
var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
BackgroundColor = lightColor,
Color = darkColor,
// Embed a logo image into the QR center
Logo = AnyBitmap.FromFile("logo.png")
};
QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120); // Deep navy foreground
var lightColor = Color.White;
var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
BackgroundColor = lightColor,
Color = darkColor,
// Embed a logo image into the QR center
Logo = AnyBitmap.FromFile("logo.png")
};
QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Define custom colors for the QR code
Dim darkColor As Color = Color.FromArgb(30, 30, 120) ' Deep navy foreground
Dim lightColor As Color = Color.White
Dim options As New QrOptions(QrErrorCorrectionLevel.High, maxVersion:=20) With {
.BackgroundColor = lightColor,
.Color = darkColor,
' Embed a logo image into the QR center
.Logo = AnyBitmap.FromFile("logo.png")
}
Dim styledQr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options)
Dim output As AnyBitmap = styledQr.Save()
output.SaveAs("branded-qr.png")
Durch das Einbetten eines Logos verringert sich der effektive Datenbereich, daher benötigt die Bibliothek beim Bereitstellen eines Logos die Fehlerkorrekturstufe H. Die reservierte Ruhezone im Zentrum umfasst etwa 30 % der Codefläche, was innerhalb der Wiederherstellungskapazität der H-Ebene liegt. Die Bibliothek setzt diese Einschränkung automatisch durch – wenn Sie neben einem Logo eine niedrigere Fehlerkorrekturstufe festlegen, löst IronQR eine Ausnahme mit einer beschreibenden Meldung aus, anstatt einen Code zu erzeugen, der unzuverlässig gescannt werden kann.
Für ASP.NET Core Anwendungen zeigt das Tutorial zum ASP.NET Core QR-Code-Generator, wie generierte QR-Codes als Bildantworten von einer Controller-Aktion bereitgestellt werden. Der Ausgabestream schreibt direkt in die Antwort, ohne zwischenzeitliche Datei-E/A, wodurch die Latenz für stark frequentierte Endpunkte gering bleibt.
Wie liest man QR-Codes in einer ASP.NET Core Anwendung?
Das Scannen von QR-Codes serverseitig – aus hochgeladenen Bildern, Dokumentenverarbeitungspipelines oder automatisierten Inspektionssystemen – ist ein häufiger Anwendungsfall für die Lese-API. Die Anleitung zum ASP.NET -QR-Code-Scanner beschreibt die vollständige Einrichtung von Controller und Dienst, das grundlegende Lesemuster ist jedoch dasselbe wie bei einer Konsolenanwendung:
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
[HttpPost("scan")]
public IActionResult Scan(IFormFile imageFile)
{
using var stream = imageFile.OpenReadStream();
var bitmap = AnyBitmap.FromStream(stream);
var imageInput = new QrImageInput(bitmap);
var reader = new QrReader();
var results = reader.Read(imageInput);
var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
return Ok(decoded);
}
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
[HttpPost("scan")]
public IActionResult Scan(IFormFile imageFile)
{
using var stream = imageFile.OpenReadStream();
var bitmap = AnyBitmap.FromStream(stream);
var imageInput = new QrImageInput(bitmap);
var reader = new QrReader();
var results = reader.Read(imageInput);
var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
return Ok(decoded);
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
<ApiController>
<Route("api/qr")>
Public Class QrScanController
Inherits ControllerBase
<HttpPost("scan")>
Public Function Scan(imageFile As IFormFile) As IActionResult
Using stream = imageFile.OpenReadStream()
Dim bitmap = AnyBitmap.FromStream(stream)
Dim imageInput = New QrImageInput(bitmap)
Dim reader = New QrReader()
Dim results = reader.Read(imageInput)
Dim decoded = results.Select(Function(r) New With {Key .Value = r.Value, Key .Url = r.Url}).ToList()
Return Ok(decoded)
End Using
End Function
End Class
Die Methode AnyBitmap.FromStream() akzeptiert jeden lesbaren Stream, sodass derselbe Codepfad für Dateien, die über ein Formular hochgeladen wurden, Bilder, die aus dem Blob-Speicher abgerufen wurden, oder Frames, die aus einer Videopipeline extrahiert wurden, funktioniert. Der Controller schreibt keine temporären Dateien auf die Festplatte, was bei containerisierten Bereitstellungen von Bedeutung ist, wo das Dateisystem schreibgeschützt sein kann.
Für Szenarien mit hohem Durchsatz initialisieren Sie QrReader einmal pro Lebensdauer der Anwendung als Singleton, da die Kosten für das Laden des ML-Modells bei der ersten Konstruktion anfallen. Nachfolgende Read() Aufrufe auf derselben Instanz sind threadsicher und teilen das geladene Modell.
Wie generiert man QR-Codes in einer .NET MAUI Anwendung?
Das .NET MAUI QR-Code-Tutorial zeigt die plattformübergreifende Erstellung auf iOS, Android, macOS und Windows vollständig. IronQR verwendet das SkiaSharp -Rendering-Backend, wenn es auf Nicht-Windows-Plattformen ausgeführt wird, wodurch eine konsistente Ausgabe auf allen MAUI-Zielen gewährleistet wird.
using IronQr;
using IronSoftware.Drawing;
// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();
// Bind imageBytes to an <Image Source> in your MAUI page
using IronQr;
using IronSoftware.Drawing;
// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();
// Bind imageBytes to an <Image Source> in your MAUI page
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR and convert to a byte array for display in MAUI
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim bitmap As AnyBitmap = qr.Save()
Dim imageBytes As Byte() = bitmap.ExportBytes()
' Bind imageBytes to an <Image Source> in your MAUI page
Auf mobilen Zielen gibt ExportBytes() ein PNG-Byte-Array zurück, das Sie direkt in ein StreamImageSource einspeisen oder in ein ImageButton schreiben können. Das MAUI-Gerüst benötigt keine plattformspezifischen Codepfade – die gleiche Generierungslogik läuft auf allen vier MAUI-Zielen identisch ab.
Für VB .NET -Projekte ist die API-Oberfläche identisch; Lediglich die Syntax unterscheidet sich. Die Bibliothek wird als einzelnes NuGet Paket ausgeliefert, eine separate VB .NET -Assembly ist nicht erforderlich.
Was sind Ihre nächsten Schritte?
IronQR deckt den gesamten QR-Code-Lebenszyklus in .NET ab – von der grundlegenden Generierung und der strukturierten Nutzdatenkodierung bis hin zum ML-gestützten Lesen beschädigter oder markengeschützter Codes. Die Bibliothek übernimmt die Kanji-Kodierung, die Konfiguration der Fehlerkorrektur und die plattformübergreifende Bildausgabe, sodass Sie sich auf die für Ihre Anwendung spezifische Logik konzentrieren können.
Um das Gelernte in die Praxis umzusetzen:
- Lesen Sie das C# QR-Code-Leser-Tutorial, um einen detaillierteren Einblick in die Lese-API und die Ergebnisverarbeitung zu erhalten.
- Arbeiten Sie das Tutorial zur C#-QR-Code-Generator-Anwendung durch, um eine vollständige Projektbeschreibung zu erhalten.
- Durchstöbern Sie die Codebeispiele , um weitere Generierungs- und Lesemuster zu sehen.
- Erwerben Sie eine IronQR Lizenz , um alle Funktionen für den Produktiveinsatz freizuschalten, oder verlängern Sie die kostenlose Testphase, wenn Sie mehr Testzeit benötigen.
Häufig gestellte Fragen
Welche .NET Versionen unterstützt IronQR ?
IronQR unterstützt .NET Core 6, 7, 8, 9 und 10 sowie .NET Framework 4.6.2 und höher. Es ist außerdem auf .NET Standard 2.0+ ausgerichtet und somit kompatibel mit Xamarin-, .NET MAUI, Blazor und ASP.NET Core Projekten.
Wie liest man in C# einen QR-Code aus einer Bilddatei?
Laden Sie das Bild mit `AnyBitmap.FromFile()`, übergeben Sie es an ein `QrImageInput`-Objekt und rufen Sie anschließend `QrReader.Read()` auf. Die Methode gibt ein `IEnumerable`-Objekt zurück.
Welche vier Fehlerkorrekturstufen gibt es bei QR-Codes?
Die vier Stufen sind Niedrig (L, ~7 % Wiederherstellung), Mittel (M, ~15 %), Quartil (Q, ~25 %) und Hoch (H, ~30 %). Höhere Stufen fügen Redundanzmodule hinzu, wodurch die Nettodatenkapazität reduziert, aber die Scan-Zuverlässigkeit bei beschädigten oder teilweise verdeckten Codes verbessert wird.
Kann IronQR QR-Codes lesen, die ein Logo enthalten oder teilweise beschädigt sind?
Ja. Das ML-gestützte Erkennungsmodell in IronQR verarbeitet teilweise beschädigte Codes, eingebettete Logos, Bewegungsunschärfe und niedrig auflösende Eingaben ohne manuelle Vorverarbeitung.
Wie bettet man mit IronQR ein Logo in einen QR-Code ein?
Setzen Sie die `Logo`-Eigenschaft eines `QrOptions`-Objekts auf ein `AnyBitmap` Ihres Logobildes und stellen Sie die Fehlerkorrekturstufe auf „Hoch“. IronQR erzwingt diese Einschränkung automatisch, da ein zentriertes Logo etwa 30 % der Codefläche einnimmt.
Unterstützt IronQR japanische und andere Unicode-Zeichen?
Ja. Übergeben Sie eine beliebige Unicode-Zeichenkette an `QrWriter.Write()`, und die Bibliothek wählt automatisch den Kanji-Modus für japanische Zeichen oder den Byte-Modus mit ECI-Markierungen für andere Unicode-Inhalte aus.
Wie generiert man QR-Codes in einer ASP.NET Core Anwendung?
Verwenden Sie `AnyBitmap.FromStream()`, um hochgeladene Bilder zu lesen, und `QrWriter.Write()`, um Codes zu generieren. Geben Sie die Ausgabe als `FileContentResult` mit dem MIME-Typ `image/png` zurück. Instanziieren Sie `QrReader` als Singleton, um die Kosten für das Laden des ML-Modells zu amortisieren.
Ist IronQR plattformübergreifend?
Ja. IronQR verwendet auf Nicht-Windows-Plattformen ein SkiaSharp-Rendering-Backend und bietet so eine konsistente QR-Code-Generierung und -Lesung auf macOS, Linux, iOS und Android über .NET MAUI.



