UTILISATION D'IRONQR

Comment scanner un code QR en ASP .NET

Jordi Bardia
Jordi Bardia
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 utiliserons IronQR, une puissante bibliothèque pour la génération de codes QR de Iron 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. Installez la bibliothèque IronQR depuis le 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

Les codes QR (Quick Response) sont des codes-barres bidimensionnels pouvant stocker des informations allant des URL aux coordonnées, généralement scannés à l'aide de smartphones ou de dispositifs de scan 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 avoir besoin de la saisir.
  • Billetterie d'événements : 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 le produit : 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 le balayage de codes QR, offrant une fonctionnalité robuste avec une utilisation facile à l'esprit. 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. Lecture des codes QR : IronQR peut lire les codes QR à partir de divers formats d'image, y compris jpg, png, svg, bmp, gif, tif, tiff, et plus encore. 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. Écriture de codes QR : Vous pouvez générer des codes QR et les enregistrer sous forme d'images (jpg, png, gif, tiff, bmp), de flux, ou même les tamponner sur 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. Gestion et correction des erreurs : IronQR offre 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 avancé d'apprentissage automatique : IronQR utilise un modèle avancé d'apprentissage automatique pour la reconnaissance de 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 diverses versions de .NET comme .NET Core (8, 7, 6, 5 et 3.1+), .NET Standard (2.0+), .NET Framework (4.6.2+)

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

  7. Large prise en charge des codes QR : IronQR excelle dans le traitement d'un large éventail de codes QR et d'autres types de codes-barres. Que vous traitiez des codes QR standard, des micro codes QR, une image de code-barres QR code, ou même des 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 API .NET, qui inclut divers outils pour les documents de bureau, l'édition PDF, la reconnaissance optique de caractères (OCR), et plus encore.

É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 dans ASP.NET : Figure 1 - Créez 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 dans ASP .NET : Figure 2 - Fournissez le nom du projet et l'emplacement où vous souhaitez enregistrer.

Sélectionnez la version .NET.

Comment scanner un code QR dans ASP .NET : Figure 3 - Sélectionnez la version de .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 dans ASP .NET : Figure 4 - Cliquez sur le bouton créer dans Visual Studio pour obtenir le modèle pour votre projet

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

Installez la bibliothèque IronQR depuis le gestionnaire de packages de Visual Studio comme indiqué ci-dessous

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

IronQR peut aussi être installé en utilisant le gestionnaire de paquets NuGet.

Comment scanner un code QR en ASP .NET : Figure 6 - Recherchez IronQR via le gestionnaire de packages 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
$vbLabelText   $csharpLabel

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 dans ASP .NET : Figure 7 - Ajouter un nouveau contrôleur en cliquant sur le dossier et en lui donnant un nom

Sélectionnez Empty Controller.

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

Indiquer le nom du contrôleur.

Comment scanner un code QR dans ASP .NET : Figure 9 - Nommer le 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
$vbLabelText   $csharpLabel

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 de fichier (path) dans le répertoire racine web de l'application spécifiquement pour enregistrer des images de code 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 complet du fichier (filePath) où l'image du code QR téléchargée sera enregistré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 fichier 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

Utilisez AnyBitmap.FromFile(filePath) pour charger le fichier image enregistré dans un format approprié pour le balayage de codes QR. AnyBitmap sert probablement de classe d'assistance pour convertir des fichiers image en un objet bitmap que le lecteur de QR peut traiter.

Initialisation du lecteur QR

Enveloppe le bitmap chargé dans un QrImageInput, qui est spécialement conçu pour être une entrée dans le processus de lecture de 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 à la recherche de codes QR. Cette méthode retourne un IEnumerable<QrResult>, où chaque QrResult contient des données provenant d'un code QR détecté dans l'image. Il extrait la valeur du premier résultat en utilisant results.First().Value et stocke 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 une 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

Renvoie la même vue (View()), 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 l'affichage.

Ajouter une vue à la classe Controller

Ajoutez une nouvelle vue, cliquez avec le bouton droit sur la méthode d'action CreateQRCode dans la classe QrCodeController.

Comment scanner un code QR dans 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 le code QR dans ASP .NET : Figure 11 - Sélectionnez l'option Ajouter une vue, puis Vue Razor, puis Ajouter

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

Comment scanner un code QR dans ASP .NET : Figure 12 - Sélectionnez le modèle créé 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
$vbLabelText   $csharpLabel

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}")
$vbLabelText   $csharpLabel

Ceci modifie 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 dans ASP .NET : Figure 13 - Exemple de saisie de code QR

Sortie

Comment scanner un code QR dans 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)
$vbLabelText   $csharpLabel

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 pour IronQR ici. 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 en utilisant IronQR. Intégrer IronQR 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. Les fonctionnalités puissantes et la facilité d'utilisation de IronQR en font un excellent choix pour les développeurs cherchant à implémenter des fonctionnalités liées aux codes-barres.

Jordi Bardia
Ingénieur logiciel
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT
Comment générer des codes QR en ASP .NET Core ?
SUIVANT >
Comment scanner des codes QR en C#