VERWENDUNG VON IRONQR

Scannen von QR-Codes in ASP .NET

Jordi Bardia
Jordi Bardia
6. Juni 2024
Teilen Sie:

Einführung

QR-Codes sind in unserer digitalen Welt allgegenwärtig und werden häufig in der Werbung, im Einzelhandel, im Veranstaltungsmanagement und anderen Bereichen eingesetzt. Für Entwickler, die mit dem ASP.NET-Framework arbeiten, kann die Integration von QR-Code-Scanfunktionen in Webanwendungen die Benutzerfreundlichkeit und Funktionalität verbessern. In diesem Artikel wird der Prozess der Implementierung eines QR-Code-Scanners in einer ASP.NET-Anwendung untersucht, wobei die erforderlichen Tools, Bibliotheken und die schrittweise Implementierung behandelt werden. Wir werden IronQR, eine leistungsstarke Bibliothek zur QR-Code-Erstellung von Iron Software, verwenden, um QR-Codes zu lesen.

Scannen von QR-Codes in ASP .NET

  1. ASP.NET-Projekt mit Visual Studio erstellen

  2. Installieren Sie die IronQR-Bibliothek über den Paketmanager

  3. Laden Sie das QR-Bild hoch und lesen Sie den QR.

  4. Erweiterte QR-Codes lesen

QR-Codes und ihre Anwendungsfälle verstehen

QR-Codes (Quick Response) sind zweidimensionale Barcodes, die Informationen von URLs bis hin zu Kontaktdaten speichern können. Sie werden typischerweise mit Smartphones oder speziellen Scan-Geräten gescannt. In Webanwendungen können QR-Codes verschiedenen Zwecken dienen, wie zum Beispiel:

  • Schneller Website-Zugriff: Benutzer direkt zu einer bestimmten URL leiten, ohne dass eine Eingabe erforderlich ist.
  • Eventticketing: Überprüfung von QR-Codes auf Tickets für den Zugang zu Veranstaltungen.
  • Zahlungssysteme: Erleichterung der Zahlung durch das Scannen eines QR-Codes.
  • Produktinformationen: Bereitstellung zusätzlicher Informationen über Produkte.

Einführung in IronQR

IronQR ist eine leistungsstarke .NET-Bibliothek, die für die Erstellung und das Scannen von QR-Codes entwickelt wurde und eine robuste Funktionalität bei einfacher Handhabung bietet. Diese vielseitige Bibliothek verarbeitet nicht nur QR-Codes, sondern kann auch andere Barcodetypen verwalten, was sie zu einer bevorzugten Wahl für Entwickler macht, die im .NET-Ökosystem arbeiten. Im Folgenden wird untersucht, wie die IronQR-Bibliothek in eine ASP.NET-Anwendung integriert werden kann, um das Scannen von QR-Codes zu erleichtern.

Die wichtigsten Vorteile und Merkmale von IronQR

  1. QR-Codes lesen: IronQR kann QR-Codes aus verschiedenen Bildformaten lesen, einschließlich jpg, png, svg, bmp, gif, tif, tiff und mehr. Es unterstützt auch mehrseitige Bilder und benutzerdefinierte QR-Erkennungsmodelle. Die Ausgabedatenformate umfassen Text, URLs, Koordinaten und mehr.

  2. QR-Codes erstellen: Sie können QR-Codes generieren und als Bilder (jpg, png, gif, tiff, bmp), Streams speichern oder sogar auf bestehende PDFs stempeln. Kodieren Sie Daten wie Text, URLs, Bytes und Zahlen und erzeugen Sie QR-Codes. Passen Sie das Design des QR-Codes an, indem Sie die Größe ändern, die Ränder anpassen, neu einfärben und Logos hinzufügen.

  3. Fehlerbehandlung und Korrektur: IronQR bietet detaillierte Fehlermeldungen und benutzerdefinierte QR-Fehlerkorrektur. Es gewährleistet Fehlertoleranz und unterstützt Nullprüfungen und Prüfsummen.

  4. Fortschrittliches Machine-Learning-Modell: IronQR verwendet ein fortschrittliches Machine-Learning-Modell zur QR-Code-Erkennung. Dieses Modell gewährleistet ein genaues und zuverlässiges Lesen von QR-Codes über verschiedene Plattformen hinweg, einschließlich Mobil-, Desktop- und Cloud-Umgebungen.

  5. Plattformübergreifende Kompatibilität: IronQR ist für C#, F# und VB.NET konzipiert und läuft auf verschiedenen .NET-Versionen wie .NET Core (8, 7, 6, 5 und 3.1+), .NET Standard (2.0+) und .NET Framework (4.6.2+)

  6. Es unterstützt verschiedene Projekttypen, einschließlich Web- (Blazor & WebForms), mobile (Xamarin & MAUI), Desktop- (WPF & MAUI) und Konsolenanwendungen.

  7. Umfassende QR-Code-Unterstützung: IronQR zeichnet sich durch die Verarbeitung einer Vielzahl von QR-Codes und anderen Arten von Barcodes aus. Egal, ob Sie mit Standard-QR-Codes, Mikro-QR-Codes, einem QR-Code-Barcode-Bild oder sogar speziellen Formaten wie Aztec oder Data Matrix arbeiten, IronQR hat alles abgedeckt. IronQR unterstützt auch die Funktion zum Lesen von QR-Code-Barcodes.

    IronQR von .NET API-Produkten, die verschiedene Tools für Bürodokumente, PDF-Bearbeitung, OCR und mehr umfassen.

Schritt 1: Erstellen Sie ein neues ASP.NET-Projekt mit Visual Studio

Beginnen Sie mit der Erstellung eines neuen Projekts und wählen Sie die MVC-Vorlage wie unten gezeigt

Wie man einen QR-Code in ASP.NET scannt: Abbildung 1 - Erstellen Sie ein neues ASP.NET-Projekt mit Visual Studio

Als nächstes sollten Sie einen Projektnamen und einen Standort für das Projekt angeben.

Wie man einen QR-Code in ASP .NET scannt: Abbildung 2 - Geben Sie den Projektnamen und den Speicherort an, an dem Sie speichern möchten.

Wählen Sie die .NET-Version.

Wie man QR-Code in ASP .NET scannt: Abbildung 3 - Wählen Sie die .NET-Version aus, die Sie verwenden möchten.

Wenn Sie auf die Schaltfläche "Erstellen" klicken, werden der folgende Code und das folgende Projekt erstellt.

So scannen Sie QR-Codes in ASP.NET: Abbildung 4 - Klicken Sie auf die Schaltfläche Erstellen in Visual Studio, um die Vorlage für Ihr Projekt zu erhalten

Schritt 2: Installieren der IronQR-Bibliothek über den Visual Studio Package Manager

Installieren Sie die IronQR-Bibliothek aus dem Visual Studio-Paketmanager, wie unten gezeigt.

Wie man einen QR-Code in ASP .NET scannt: Abbildung 5 - Suchen Sie mit dem Visual Studio-Paket-Manager nach IronQR und installieren Sie es

IronQR kann auch mit dem NuGet-Paket-Manager installiert werden.

Wie man einen QR-Code in ASP .NET scannt: Abbildung 6 - Suchen Sie nach IronQR über den NuGet-Paket-Manager

Schritt 3: Hochladen des QR-Bildes und Lesen des QR-Bildes

Nun wollen wir eine QR-Code-App erstellen.

Erstelle QrCode Modell

using System.ComponentModel.DataAnnotations;
namespace IronQRScannerAsp.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Select QR Image")]
        public IFormFile QRCodeImage
        {
            get;
            set;
        }
    }
}
using System.ComponentModel.DataAnnotations;
namespace IronQRScannerAsp.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Select QR Image")]
        public IFormFile QRCodeImage
        {
            get;
            set;
        }
    }
}
Imports System.ComponentModel.DataAnnotations
Namespace IronQRScannerAsp.Models
	Public Class QRCodeModel
		<Display(Name := "Select QR Image")>
		Public Property QRCodeImage() As IFormFile
	End Class
End Namespace
$vbLabelText   $csharpLabel

Einen QR-Code-Controller erstellen

Fügen Sie einen neuen Controller hinzu, indem Sie mit der rechten Maustaste auf den Controller-Ordner klicken und einen Namen vergeben (siehe unten):

Wie man einen QR-Code in ASP .NET scannt: Abbildung 7 - Fügen Sie einen neuen Controller hinzu, indem Sie auf den Ordner klicken und ihm einen Namen geben

Wählen Sie Leerer Controller.

Wie man QR-Code in ASP .NET scannt: Abbildung 8 - Klicken Sie im Dialogfeld auf Leerer Controller

Geben Sie den Namen des Controllers an.

Wie man QR-Code in ASP .NET scannt: Abbildung 9 - Den Controller benennen

Fügen Sie nun den folgenden Code in den Controller ein.

using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace IronQRScannerAsp.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        public IActionResult Index()
        {
          ViewBag.QrCodeText = "Text";
          return View();
        }
        [HttpPost]
        public IActionResult ScanQRCode(QRCodeModel qrImage)
        {
            string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
            using (var stream = System.IO.File.Create(filePath))
            {
                qrImage.QRCodeImage.CopyTo(stream);
            }
            // Open the asset to read a QR Code from
            var bitmap = AnyBitmap.FromFile(filePath);
            // Load the asset into QrImageInput
            QrImageInput imageInput = new QrImageInput(bitmap);
            // Create a QR Reader object
            QrReader reader = new QrReader();
            // Read the Input an get all embedded QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);
            ViewBag.QrCodeText = results.First().Value;
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
            ViewBag.QrCodeUri = imageUrl;
          return View();
        }
    }
}
using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace IronQRScannerAsp.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        public IActionResult Index()
        {
          ViewBag.QrCodeText = "Text";
          return View();
        }
        [HttpPost]
        public IActionResult ScanQRCode(QRCodeModel qrImage)
        {
            string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
            using (var stream = System.IO.File.Create(filePath))
            {
                qrImage.QRCodeImage.CopyTo(stream);
            }
            // Open the asset to read a QR Code from
            var bitmap = AnyBitmap.FromFile(filePath);
            // Load the asset into QrImageInput
            QrImageInput imageInput = new QrImageInput(bitmap);
            // Create a QR Reader object
            QrReader reader = new QrReader();
            // Read the Input an get all embedded QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);
            ViewBag.QrCodeText = results.First().Value;
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
            ViewBag.QrCodeUri = imageUrl;
          return View();
        }
    }
}
Imports IronQr
Imports IronQRScannerAsp.Models
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace IronQRScannerAsp.Controllers
	Public Class QrCodeController
		Inherits Controller

		Private ReadOnly _environment As IWebHostEnvironment
		Public Sub New(ByVal environment As IWebHostEnvironment)
			_environment = environment
		End Sub
		Public Function Index() As IActionResult
		  ViewBag.QrCodeText = "Text"
		  Return View()
		End Function
		<HttpPost>
		Public Function ScanQRCode(ByVal qrImage As QRCodeModel) As IActionResult
			Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "ScanQRCode")
			If Not Directory.Exists(path) Then
				Directory.CreateDirectory(path)
			End If
			Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png")
			Using stream = System.IO.File.Create(filePath)
				qrImage.QRCodeImage.CopyTo(stream)
			End Using
			' Open the asset to read a QR Code from
			Dim bitmap = AnyBitmap.FromFile(filePath)
			' Load the asset into QrImageInput
			Dim imageInput As New QrImageInput(bitmap)
			' Create a QR Reader object
			Dim reader As New QrReader()
			' Read the Input an get all embedded QR Codes
			Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
			ViewBag.QrCodeText = results.First().Value
			Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/ScanQRCode/qrcode.png"
			ViewBag.QrCodeUri = imageUrl
		  Return View()
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Code Erläuterung

Das bereitgestellte Codeschnipsel ist für einen ASP.NET Core MVC-Controller mit dem Namen QrCodeController, der für die Handhabung von QR-Code-Scan-Funktionen unter Verwendung der IronQR-Bibliothek konzipiert ist. Hier ist eine kurze Beschreibung, was der Code macht:

1. Speichern des hochgeladenen QR-Code-Bildes

Pfad Konstruktion

Es erstellt einen Dateipfad (Pfad) innerhalb des Web-Stammverzeichnisses der Anwendung, speziell zum Speichern von QR-Code-Bildern (Verzeichnis "ScanQRCode").

Es wird geprüft, ob dieses Verzeichnis existiert, und wenn nicht, wird es erstellt, um Fehler beim Speichern der Datei zu vermeiden.

Speichern von Dateien

Es konstruiert den vollständigen Dateipfad (filePath), wo das hochgeladene QR-Code-Bild gespeichert wird ("ScanQRCode/qrcode.png"). Dadurch werden alle vorhandenen Dateien mit demselben Namen überschrieben, so dass neue Scans ohne die Anhäufung von Dateien durchgeführt werden können.

Es öffnet einen Dateistream und kopiert den Inhalt des hochgeladenen Bildes (qrImage.QRCodeImage, wahrscheinlich eine Form-Datei) an den angegebenen Speicherort auf dem Server.

2. Dekodierung des QR-Codes

Lesen der Bilddatei

Verwendet AnyBitmap.FromFile(filePath), um die gespeicherte Bilddatei in ein Format zu laden, das für das Scannen von QR-Codes geeignet ist. AnyBitmap dient wahrscheinlich als Hilfsklasse zum Konvertieren von Bilddateien in ein Bitmap-Objekt, das der QR-Leser verarbeiten kann.

Initialisierung des QR-Readers

Umschließt die geladene Bitmap in ein QrImageInput, das speziell dafür entwickelt wurde, ein Eingabemedium für den QR-Code-Lesevorgang zu sein. Instanziiert ein QrReader, eine Komponente der IronQR-Bibliothek, die konfiguriert ist, um QR-Codes zu erkennen und zu dekodieren.

Scannen des QR-Codes

Ruft reader.Read(imageInput) auf, um das Bild nach QR-Codes zu scannen. Diese Methode gibt ein IEnumerable<QrResult> zurück, wobei jedes QrResult Daten aus einem erkannten QR-Code im Bild enthält. Es extrahiert den Wert des ersten Ergebnisses mittels results.First().Value und speichert diese dekodierte Information in ViewBag.QrCodeText. Dabei wird davon ausgegangen, dass das Bild mindestens einen QR-Code enthält, und mögliche Fehler, bei denen keine QR-Codes erkannt werden, werden nicht behandelt.

3. Vorbereiten und Zurücksenden der Antwort

Bild-URL Konstruktion

Konstruiert eine URL (imageUrl), die auf das gespeicherte QR-Code-Bild auf dem Server verweist. Diese URL wird unter Verwendung des Schemas, des Hosts und der Pfadbasis der aktuellen HTTP-Anfrage erstellt, um sicherzustellen, dass die Benutzer auf sie zugreifen können. Die konstruierte URL wird in ViewBag.QrCodeUri gespeichert.

Ansicht Rückkehr

Gibt dieselbe Ansicht zurück (View()), die wahrscheinlich sowohl das QR-Code-Bild als auch den dekodierten Text für den Benutzer anzeigt. Der ViewBag wird verwendet, um den dekodierten Text des QR-Codes und die URL des Bildes an die Ansicht zur Darstellung zu übergeben.

View zur Controller-Klasse hinzufügen

Fügen Sie eine neue Ansicht hinzu, indem Sie mit der rechten Maustaste auf die CreateQRCode-Aktionsmethode in der QrCodeController-Klasse klicken.

So scannen Sie QR-Codes in ASP .NET: Abbildung 10 - Fügen Sie eine neue Ansicht in der `QrCodeController`-Klasse hinzu

Wählen Sie die Option "Ansicht hinzufügen" und dann "Razor-Ansicht". Klicken Sie auf "Hinzufügen".

So scannen Sie QR-Codes in ASP .NET: Abbildung 11 - Wählen Sie die Option Ansicht hinzufügen, dann Razor-Ansicht und dann Hinzufügen

Wählen Sie dann die Vorlage "Erstellen" und die zuvor erstellte Modellklasse.

So scannen Sie QR-Codes in ASP .NET: Abbildung 12 - Wählen Sie die zuvor generierte Vorlage aus

Ersetzen Sie nun den Code in der View-Klasse durch den unten dargestellten.

@model IronQRScannerAsp.Models.QRCodeModel
@{
    ViewData["Title"] = "ScanQRCode";
}
<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-14">
        <form asp-action="ScanQRCode" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <h3>Scanned Text:</h3>
                <h4>@ViewBag.QrCodeText</h4>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{
        await Html.RenderPartialAsync("_ValidationScriptsPartial");
    }
}
@model IronQRScannerAsp.Models.QRCodeModel
@{
    ViewData["Title"] = "ScanQRCode";
}
<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-14">
        <form asp-action="ScanQRCode" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <h3>Scanned Text:</h3>
                <h4>@ViewBag.QrCodeText</h4>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{
        await Html.RenderPartialAsync("_ValidationScriptsPartial");
    }
}
model ReadOnly Property () As IronQRScannerAsp.Models.QRCodeModel
	ViewData("Title") = "ScanQRCode"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> </div> <div class="form-group"> <h3> Scanned Text:</h3> <h4> @ViewBag.QrCodeText</h4> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"form-group"> </div> <div class="form-group"> (Of h3) Scanned Text
	Inherits </h3>(Of h4) ViewBag.QrCodeText</h4> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts

'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> </div> <div class
"text-danger"></div> <div class="form-group"> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class
"multipart/form-data"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary
"ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype
"col-md-14"> <form asp-action="ScanQRCode" enctype
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action
"row"> <div class="col-md-14"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Friend (Of h1) ScanQRCode</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
	@
	If True Then
		Await Html.RenderPartialAsync("_ValidationScriptsPartial")
	End If
End Class
$vbLabelText   $csharpLabel

Ändern Sie nun in der Datei program.cs den folgenden Code, um die obige Ansicht zur Standardroute zu machen

app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}");
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}");
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")
$vbLabelText   $csharpLabel

Dies ändert die Standardroute vom HomeController zu unserem QrCode-Controller.

Eingabebild mit URL: https://ironsoftware.com/csharp/qr/.

Wie man einen QR-Code in ASP .NET scannt: Abbildung 13 - Beispiel-QR-Code-Eingabe

Ausgabe

Wie man einen QR-Code in ASP .NET scannt: Abbildung 14 - Beispielausgabe nach Befolgung der oben genannten Schritte

Wählen Sie auf der Seite ein QR-Code-Bild aus und klicken Sie auf Hochladen, um den QR-Code zu entschlüsseln. Diese App kann auch so modifiziert werden, dass sie von einem Video-Feed liest und die Ergebnisse anzeigt.

Schritt 4: Erweiterten QR-Code lesen

Um erweiterte QR-Codes zu lesen, bietet IronQR die folgenden Einstellungen.

using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;
var inputBmp = AnyBitmap.FromFile("QrImage.png");
// Use Auto => Machine Learning Scan
// Careful Scan => Useful for scanning documents slowly and carefully
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);
// Use Machine Learning Scan
// High Speed => For scanning frames from a camera
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);
// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);
using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;
var inputBmp = AnyBitmap.FromFile("QrImage.png");
// Use Auto => Machine Learning Scan
// Careful Scan => Useful for scanning documents slowly and carefully
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);
// Use Machine Learning Scan
// High Speed => For scanning frames from a camera
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);
// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);
Imports IronQr
Imports IronSoftware.Drawing
Imports IronQr.Enum
Imports System.Collections.Generic
Private inputBmp = AnyBitmap.FromFile("QrImage.png")
' Use Auto => Machine Learning Scan
' Careful Scan => Useful for scanning documents slowly and carefully
Private scan_ML_and_normal As New QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel)
Private results1 As IEnumerable(Of QrResult) = (New QrReader()).Read(scan_ML_and_normal)
' Use Machine Learning Scan
' High Speed => For scanning frames from a camera
Private scan_ML_only As New QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel)
Private results2 As IEnumerable(Of QrResult) = (New QrReader()).Read(scan_ML_only)
' Use Scan without Machine Learning
Private scan_normal_only As New QrImageInput(inputBmp, QrScanMode.OnlyBasicScan)
Private results3 As IEnumerable(Of QrResult) = (New QrReader()).Read(scan_normal_only)
$vbLabelText   $csharpLabel

Durch die Nutzung der neuesten ML-Technologie haben wir den QR-Code-Leser auf ein neues Niveau gehoben. Das hochentwickelte ML-Modell verbessert die Genauigkeit und Effizienz von Anwendungen bei der Dekodierung von QR-Codes, selbst unter komplexen Bedingungen. Ganz gleich, ob QR-Codes aus Standbildern, Videostreams oder Live-Kamerafeeds gelesen werden, die ML-gestützte Lösung liefert schnell und zuverlässig die gewünschten Informationen. Diese Innovation optimiert den Datenabruf und erhöht die Sicherheit, indem sie echte QR-Codes identifiziert und potenzielle Bedrohungen kennzeichnet. Mit unserer ML-Technologie können Sie sicher sein, dass Ihre QR-Code-Scanfunktionen auf dem neuesten Stand sind und Ihren Benutzern ein reibungsloses und sicheres Erlebnis bieten

Lizenz (Testversion verfügbar)

Entwickler können eine IronQR-Testlizenz von hier erhalten. Der Schlüssel muss in der Datei appSettings.json abgelegt werden.

{
  "IronQR.License.LicenseKey": "My key"
}

Schlussfolgerung

In diesem Artikel haben wir untersucht, wie man QR-Codes in ASP.NET Core mit IronQR scannen kann. Die Integration von IronQR in eine ASP.NET-Anwendung zur QR-Code-Erfassung ist ein unkomplizierter Prozess, der die Fähigkeiten von Webanwendungen erweitert und sie interaktiver und benutzerfreundlicher macht. IronQR ist dank seiner leistungsstarken Funktionen und Benutzerfreundlichkeit eine ausgezeichnete Wahl für Entwickler, die Barcode-bezogene Funktionalitäten implementieren möchten.

Jordi Bardia
Software-Ingenieur
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
< PREVIOUS
Wie man QR-Codes in ASP .NET Core generiert
NÄCHSTES >
Scannen von QR-Codes in C#

Sind Sie bereit, loszulegen? Version: 2025.4 gerade veröffentlicht

Lizenzen anzeigen >