UTILISATION D'IRONQR

Comment scanner un code QR en ASP .NET

Publié juin 6, 2024
Partager:

Introduction

Les codes QR sont devenus omniprésents dans notre monde numérique, fréquemment utilisés dans la publicité, le commerce de détail, la gestion d'événements, etc. Pour les développeurs travaillant dans le Framework .NET, l'intégration de capacités de lecture de codes QR dans les applications web peut améliorer l'expérience de l'utilisateur et la fonctionnalité. Cet article explore le processus de mise en œuvre d'un scanner de code QR dans une application ASP.NET, en couvrant les outils et les bibliothèques nécessaires, ainsi que la mise en œuvre étape par étape. Nous utiliseronsIronQRune bibliothèque puissante pour la génération de codes QR à partir deIron Software pour lire les codes QR.

Comment scanner un code QR en ASP .NET

  1. Créer un projet ASP.NET à l'aide de Visual Studio

  2. InstallerIronQR bibliothèque à partir du gestionnaire de paquets

  3. Télécharger l'image QR et lire la QR.

  4. Lire un code QR avancé

Comprendre les codes QR et leurs cas d'utilisation

QR(Réponse rapide) sont des codes-barres bidimensionnels qui peuvent stocker des informations allant de l'URL aux coordonnées, généralement scannés à l'aide de smartphones ou d'appareils de lecture dédiés. Dans les applications web, les codes QR peuvent avoir diverses fonctions, telles que :

  • Accès rapide au site web : Diriger les utilisateurs vers une URL spécifique sans qu'ils aient besoin de la taper.
  • Billetterie d'événement : Vérification des codes QR sur les billets pour l'accès aux événements.
  • Systèmes de paiement : Faciliter le paiement en scannant un code QR.
  • Informations sur les produits : Fournir des informations supplémentaires sur les produits.

Présentation d'IronQR

IronQR est une puissante bibliothèque .NET conçue pour la génération et la numérisation de codes QR, offrant des fonctionnalités robustes et faciles à utiliser. Cette bibliothèque polyvalente gère non seulement les codes QR, mais aussi d'autres types de codes-barres, ce qui en fait un choix privilégié pour les développeurs travaillant dans l'écosystème .NET. Nous verrons ici comment intégrer la bibliothèque IronQR for .NET dans une application ASP.NET pour faciliter la lecture des codes QR.

Principaux avantages et caractéristiques d'IronQR

  1. Lire les QR Codes :IronQR peut lire les codes QR à partir de différents formats d'image, notamment jpg, png, svg, bmp, gif, tif, tiff, etc. Il prend également en charge les images multipages et les modèles de détection QR personnalisés. Les formats de données de sortie comprennent le texte, les URL, les coordonnées, etc.

  2. Rédaction de codes QR : Vous pouvez générer des codes QR et les enregistrer sous forme d'images(jpg, png, gif, tiff, bmp)ou des flux de données, ou même de les ajouter à des PDF existants. Encodez des données telles que du texte, des URL, des octets et des nombres et générez des codes QR. Personnalisez le style du code QR en le redimensionnant, en ajustant les marges, en le recolorant et en ajoutant des logos.

  3. Traitement et correction des erreurs :IronQR fournit des messages d'erreur détaillés et une correction d'erreur QR personnalisée. Il garantit la tolérance aux pannes et prend en charge la vérification de la nullité et les sommes de contrôle.

  4. Modèle d'apprentissage automatique avancé :IronQR utilise un modèle avancé d'apprentissage automatique pour la reconnaissance des codes QR. Ce modèle garantit une lecture précise et fiable des codes QR sur différentes plateformes, y compris les environnements mobiles, de bureau et en nuage.

  5. Compatibilité multiplateforme :IronQR est conçu pour C#, F# et VB.NET, fonctionnant sur différentes versions de .NET comme .NET Core(8, 7, 6, 5 et 3.1+), Standard .NET(2.0+), Framework .NET(4.6.2+)

  6. Il prend en charge différents types de projets, y compris les projets web(Blazor et WebForms)mobile(Xamarin et MAUI), bureau(WPF ET MAUI)et les applications sur console.

  7. Prise en charge étendue des codes QR : IronQR excelle dans le traitement d'une large gamme de codes QR et d'autres types de codes-barres. Qu'il s'agisse de codes QR standard, de micro-codes QR, d'une image de code-barres QR ou même de formats spécifiques comme Aztec ou Data Matrix,IronQR vous couvre. IronQR prend également en charge la fonctionnalité de lecture des codes-barres QR.

    IronQR des produits de l'API .NET, qui comprend divers outils pour les documents bureautiques, l'édition de PDF, l'OCR, etc.

Étape 1 : Créer un nouveau projet ASP.NET à l'aide de Visual Studio

Commencez par créer un nouveau projet et sélectionnez le modèle MVC comme indiqué ci-dessous

Comment scanner un code QR en ASP .NET : Figure 1 - Créer un nouveau projet ASP.NET à l'aide de Visual Studio

Ensuite, vous devez fournir un nom de projet et un emplacement pour le projet.

Comment scanner un code QR en ASP .NET : Figure 2 - Indiquez le nom du projet et l'emplacement où vous souhaitez l'enregistrer.

Sélectionnez la version .NET.

Comment scanner un code QR en ASP .NET : Figure 3 - Sélectionnez la version .NET que vous souhaitez utiliser.

En cliquant sur le bouton de création, le code et le projet suivants seront créés.

Comment scanner un code QR en ASP .NET : Figure 4 - Cliquez sur le bouton de création pour que Visual Studio vous donne le modèle de votre projet

Étape 2 : Installer la bibliothèque IronQR à partir du gestionnaire de paquets de Visual Studio

InstallerIronQR à partir du gestionnaire de paquets de Visual Studio, comme indiqué ci-dessous

Comment scanner un code QR en ASP .NET : Figure 5 - Recherchez IronQR à l'aide du gestionnaire de paquets de Visual Studio et installez-le

IronQR peut également être installé à l'aide deNuGet Gestionnaire de paquets.

Comment scanner un code QR en ASP .NET : Figure 6 - Recherche d'IronQR via le gestionnaire de paquets NuGet

Étape 3 : Télécharger l'image QR et lire l'image QR

Créons maintenant une application de code QR.

Créer un modèle `QrCode

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
VB   C#

Créer un contrôleur de code QR

Ajoutez un nouveau contrôleur en faisant un clic droit sur le dossier du contrôleur et en lui donnant un nom, comme indiqué ci-dessous :

Comment scanner un code QR en ASP .NET : Figure 7 - Ajouter un nouveau contrôleur en cliquant sur le dossier et lui donner un nom

Sélectionnez Empty Controller.

Comment scanner un code QR en ASP .NET : Figure 8 - Cliquez sur Empty Controller (Contrôleur vide) dans l'invite

Indiquer le nom du contrôleur.

Comment scanner un code QR en ASP .NET : Figure 9 - Nom du contrôleur

Ajoutez maintenant le code suivant au contrôleur.

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
VB   C#

Explication du code

L'extrait de code fourni concerne un contrôleur ASP.NET Core MVC nommé QrCodeController, qui est conçu pour gérer les fonctionnalités de numérisation des codes QR à l'aide de la bibliothèque IronQR. Voici une brève description de ce que fait le code :

1. Enregistrement de l'image du code QR téléchargée

Construction d'un chemin

Il construit un chemin d'accès au fichier(chemin) dans le répertoire racine de l'application web, spécifiquement pour l'enregistrement des images de codes QR("Répertoire "ScanQRCode).

Il vérifie si ce répertoire existe et, si ce n'est pas le cas, le crée afin d'éviter toute erreur de fichier non trouvé lors de l'enregistrement du fichier.

Sauvegarde des fichiers

Il construit le chemin d'accès complet au fichier(filePath) où l'image du code QR téléchargée sera sauvegardée("ScanQRCode/qrcode.png"). Cette opération écrase tout fichier existant portant le même nom, ce qui permet de traiter efficacement les nouvelles analyses sans accumuler de fichiers.

Il ouvre un flux de fichiers et copie le contenu de l'image téléchargée(qrImage.QRCodeImage, probablement un fichier de formulaire) à l'emplacement spécifié sur le serveur.

2. Décoder le code QR

Lecture du fichier image

Utilise AnyBitmap.FromFile(chemindefichier) pour charger le fichier image enregistré dans un format adapté à la lecture du code QR. AnyBitmap sert probablement de classe d'aide pour convertir les fichiers images en un objet bitmap que le lecteur QR peut traiter.

Initialisation du lecteur QR

Enveloppe le bitmap chargé dans un QrImageInput, qui est spécifiquement conçu pour être une entrée pour le processus de lecture du code QR. Instancie un QrReader, un composant de la bibliothèque IronQR configuré pour détecter et décoder les codes QR.

Scanner le code QR

Appelle reader.Read(imageInput) pour scanner l'image pour les codes QR. Cette méthode renvoie un IEnumerable<QrResult>, où chaque QrResult contient les données d'un code QR détecté dans l'image. Il extrait la valeur du premier résultat en utilisant results.First().Value et stocker cette information décodée dans ViewBag.QrCodeText. Cela suppose que l'image contient au moins un code QR et ne gère pas les erreurs potentielles lorsqu'aucun code QR n'est détecté.

3. Préparation et renvoi de la réponse

Construction de l'URL de l'image

Construit un URL(imageUrl) pointant vers l'image du code QR enregistrée sur le serveur. Cette URL est construite en utilisant le schéma, l'hôte et le chemin d'accès de la requête HTTP en cours, ce qui garantit qu'elle est accessible aux utilisateurs. L'URL construite est enregistrée dans ViewBag.QrCodeUri.

Voir le retour

Retourne la même vue(Voir())qui affiche probablement à la fois l'image du code QR et le texte décodé à l'utilisateur. Le ViewBag est utilisé pour transmettre le texte décodé du code QR et l'URL de l'image à la vue pour le rendu.

Ajouter une vue à la classe Controller

Ajoutez une nouvelle vue, faites un clic droit sur la méthode d'action CreateQRCode dans la classe QrCodeController.

Comment scanner un code QR en ASP .NET : Figure 10 - Ajouter une nouvelle vue dans la classe `QrCodeController`

Sélectionnez l'option "Ajouter une vue" puis "Vue rasoir". Cliquez sur "Ajouter".

Comment scanner un code QR en ASP .NET : Figure 11 - Sélectionnez l'option Ajouter une vue, puis Razor View, puis Ajouter une vue

Sélectionnez ensuite le modèle "Créer" et la classe de modèle générée précédemment.

Comment scanner le code QR en ASP .NET : Figure 12 - Sélectionnez le modèle Créer généré précédemment

Remplacez maintenant le code de la classe de vue par le code ci-dessous.

@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
VB   C#

Maintenant, dans le fichier program.cs, modifiez le code suivant pour que la vue ci-dessus devienne la route par défaut

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}")
VB   C#

Cela change la route par défaut de HomeController à notre contrôleur QrCode.

Image d'entrée avec URL : https://ironsoftware.com/csharp/qr.

Comment scanner un code QR en ASP .NET : Figure 13 - Exemple de saisie de code QR

Sortie

Comment scanner un code QR en ASP .NET : Figure 14 - Exemple de sortie après avoir suivi les étapes ci-dessus

Sur la page, sélectionnez une image de code QR et cliquez sur télécharger pour décoder le code QR. Cette application peut également être modifiée pour lire un flux vidéo et afficher les résultats.

Étape 4 : Lire le code QR avancé

Pour lire les codes QR avancés, IronQR propose les paramètres suivants.

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)
VB   C#

En tirant parti de la technologie ML la plus récente, nous avons élevé le lecteur de code QR à de nouveaux sommets. Le modèle ML sophistiqué améliore la précision et l'efficacité des applications de décodage des codes QR, même dans des conditions complexes. Qu'il s'agisse de lire des codes QR à partir d'images fixes, de flux vidéo ou de flux de caméras en direct, la solution alimentée par la ML fournit les informations requises de manière rapide et fiable. Cette innovation rationalise la récupération des données et renforce la sécurité en identifiant les codes QR authentiques et en signalant les menaces potentielles. Grâce à notre technologie ML, vous pouvez être certain que vos capacités de numérisation de codes QR sont à la pointe de la technologie, offrant à vos utilisateurs une expérience fluide et sécurisée

Licence (version d'essai disponible)

Les développeurs peuvent obtenir une licence d'essai d'IronQR à l'adresse suivanteici. La clé doit être placée dans le fichier appSettings.json.

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

Conclusion

Dans cet article, nous avons exploré comment scanner des codes QR dans ASP.NET Core à l'aide de l'applicationIronQR. IntégrerIronQR dans une application ASP.NET pour la lecture de codes QR est un processus simple qui améliore les capacités des applications web, les rendant plus interactives et conviviales. IronQRles puissantes fonctionnalités et la facilité d'utilisation du logiciel en font un excellent choix pour les développeurs qui souhaitent mettre en œuvre des fonctionnalités liées aux codes-barres.

< PRÉCÉDENT
Comment générer des codes QR en ASP .NET Core ?
SUIVANT >
Comment scanner des codes QR en C#