Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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 die IronQReine leistungsfähige Bibliothek zur Erzeugung von QR-Codes aus Iron Software um QR-Codes zu lesen.
ASP.NET-Projekt mit Visual Studio erstellen
Installieren Sie IronQR bibliothek aus dem Paketmanager
Laden Sie das QR-Bild hoch und lesen Sie den QR.
QR (Schnelle Antwort) codes sind zweidimensionale Strichcodes, die Informationen von URLs bis hin zu Kontaktdaten speichern können und in der Regel mit Smartphones oder speziellen Lesegeräten gescannt werden. In Webanwendungen können QR-Codes verschiedenen Zwecken dienen, wie zum Beispiel:
IronQR ist eine leistungsstarke .NET-Bibliothek, die für die Erzeugung und das Scannen von QR-Codes entwickelt wurde und robuste Funktionen mit Blick auf die Benutzerfreundlichkeit 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.
Lesen von QR-Codes: IronQR kann QR-Codes aus verschiedenen Bildformaten lesen, darunter jpg, png, svg, bmp, gif, tif, tiff und andere. Es unterstützt auch mehrseitige Bilder und benutzerdefinierte QR-Erkennungsmodelle. Die Ausgabedatenformate umfassen Text, URLs, Koordinaten und mehr.
Schreiben von QR-Codes: Sie können QR-Codes erstellen und als Bilder speichern (jpg, png, gif, tiff, bmp)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.
Fehlerbehandlung und -korrektur: IronQR bietet detaillierte Fehlermeldungen und eine benutzerdefinierte QR-Fehlerkorrektur. Es gewährleistet Fehlertoleranz und unterstützt Nullprüfungen und Prüfsummen.
Erweitertes maschinelles Lernmodell: IronQR verwendet ein fortschrittliches Machine-Learning-Modell für die 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.
Plattformübergreifende Kompatibilität: IronQR wurde für C#, F# und VB.NET entwickelt und läuft auf verschiedenen .NET-Versionen wie .NET Core (8, 7, 6, 5 und 3.1+), .NET-Standard (2.0+), .NET-Framework (4.6.2+)
Es unterstützt verschiedene Projekttypen, darunter Web (Blazor und WebForms)mobil (Xamarin & MAUI)schreibtisch (WPF UND MAUI)und Konsolenanwendungen.
Breite QR-Code-Unterstützung: IronQR zeichnet sich durch eine breite Palette von QR-Codes und anderen Arten von Barcodes aus. Ganz gleich, ob es sich um Standard-QR-Codes, Micro-QR-Codes, ein QR-Code-Barcode-Bild oder sogar um spezielle Formate wie Aztec oder Data Matrix handelt, IronQR hat für Sie gesorgt. IronQR unterstützt auch die Funktion zum Lesen von QR-Code-Barcodes.
IronQR von .NET API-Produkten, die verschiedene Tools für Office-Dokumente, PDF-Bearbeitung, OCR und mehr umfassen.
Beginnen Sie mit der Erstellung eines neuen Projekts und wählen Sie die MVC-Vorlage wie unten gezeigt
Als nächstes sollten Sie einen Projektnamen und einen Standort für das Projekt angeben.
Wählen Sie die .NET-Version.
Wenn Sie auf die Schaltfläche "Erstellen" klicken, werden der folgende Code und das folgende Projekt erstellt.
Installieren Sie IronQR bibliothek aus dem Visual Studio-Paketmanager wie unten gezeigt
IronQR kann auch installiert werden mit NuGet Paketmanager.
Nun wollen wir eine QR-Code-App erstellen.
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
Fügen Sie einen neuen Controller hinzu, indem Sie mit der rechten Maustaste auf den Controller-Ordner klicken und einen Namen vergeben (siehe unten):
Wählen Sie Leerer Controller.
Geben Sie den Namen des Controllers an.
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
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:
Er konstruiert einen Dateipfad (pfad) im Web-Root-Verzeichnis der Anwendung speziell für die Speicherung von QR-Code-Bildern ("ScanQRCode"-Verzeichnis).
Es wird geprüft, ob dieses Verzeichnis existiert, und wenn nicht, wird es erstellt, um Fehler beim Speichern der Datei zu vermeiden.
Sie konstruiert den vollständigen Dateipfad (Dateipfad
) wo das hochgeladene QR-Code-Bild gespeichert werden soll ("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 Dateistrom und kopiert den Inhalt des hochgeladenen Bildes (qrImage.QRCodeImage
, wahrscheinlich eine Formulardatei) an den angegebenen Speicherort auf dem Server.
Verwendet `AnyBitmap.FromFile(dateipfad)um die gespeicherte Bilddatei in ein für das Scannen von QR-Codes geeignetes Format zu laden. anyBitmap" dient wahrscheinlich als Hilfsklasse für die Umwandlung von Bilddateien in ein Bitmap-Objekt, das der QR-Reader verarbeiten kann.
Verpackt die geladene Bitmap in ein QrImageInput
, das speziell als Eingabe für den QR-Code-Leseprozess gedacht ist. Instanziiert einen QrReader
, eine Komponente der IronQR-Bibliothek, die für die Erkennung und Dekodierung von QR-Codes konfiguriert ist.
Ruft Leser.Lesen(imageInput)
um das Bild für QR-Codes zu scannen. Diese Methode gibt ein IEnumerable<QrResult>jedes "QrResult" enthält die Daten eines erkannten QR-Codes im Bild. Es extrahiert den Wert des ersten Ergebnisses mit
results.First().Value" und speichern diese entschlüsselten Informationen 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.
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.
Gibt die gleiche Ansicht zurück (Ansicht()
)die dem Benutzer wahrscheinlich sowohl das QR-Code-Bild als auch den entschlüsselten Text anzeigt. Die "ViewBag" wird verwendet, um den dekodierten Text des QR-Codes und die URL des Bildes zum Rendern an die Ansicht zu übergeben.
Fügen Sie eine neue Ansicht hinzu und klicken Sie mit der rechten Maustaste auf die Aktionsmethode "CreateQRCode" in der Klasse "QRCodeController".
Wählen Sie die Option "Ansicht hinzufügen" und dann "Razor-Ansicht". Klicken Sie auf "Hinzufügen".
Wählen Sie dann die Vorlage "Erstellen" und die zuvor erstellte Modellklasse.
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
Ä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}")
Dies ändert die Standardroute von "HomeController" zu unserem "QRCode"-Controller.
Bild mit URL eingeben: https://ironsoftware.com/csharp/qr.
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.
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)
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
Entwickler können eine IronQR-Testlizenz erhalten von hier. Der Schlüssel muss in der Datei appSettings.json abgelegt werden.
{
"IronQR.License.LicenseKey": "My key"
}
In diesem Artikel haben wir untersucht, wie man QR-Codes in ASP.NET Core scannt, indem wir IronQR. Integration von IronQR in eine ASP.NET-Anwendung zum Scannen von QR-Codes ist ein unkomplizierter Prozess, der die Möglichkeiten von Webanwendungen erweitert und sie interaktiver und benutzerfreundlicher macht. IronQRdie leistungsstarken Funktionen und die Benutzerfreundlichkeit machen es zu einer ausgezeichneten Wahl für Entwickler, die Barcode-bezogene Funktionen implementieren möchten.
9 .NET API-Produkte für Ihre Bürodokumente