Passer au contenu du pied de page
UTILISATION D'IRONQR

Comment générer des codes QR dans ASP.NET Core

Les codes QR sont devenus partie intégrante de la technologie moderne, offrant un moyen pratique de stocker et de transmettre des informations. En développement web, les générateurs de codes QR comme celui que nous allons implémenter avec IronQR dans ASP.NET Core offrent des fonctionnalités robustes pour la création dynamique de codes QR. Les générateurs de codes QR sont indispensables pour diverses applications telles que les systèmes de billetterie, l'authentification, la gestion des stocks, et bien plus encore. Cet article explore le processus de création de codes QR dans ASP.NET Core à l'aide d'IronQR, une bibliothèque puissante conçue à cet effet. ASP.NET Core, framework polyvalent pour la création d'applications web, offre des fonctionnalités robustes pour la génération de codes QR. Dans cet article, nous allons explorer le processus de création de codes QR dans ASP.NET Core à l'aide d'IronQR , une puissante bibliothèque de génération de codes QR d' Iron Software .

Comment générer des codes QR dans ASP.NET Core

  1. Créez un projet ASP.Net à l'aide de Visual Studio.
  2. Installez la bibliothèque IronQR à partir du Package Manager.
  3. Générer un code QR
  4. Générer un code QR avec mise en forme

Comprendre IronQR

IronQR est une bibliothèque de génération de codes QR haute performance pour les applications .NET. Elle fournit une API simple et intuitive pour générer des codes QR avec diverses options de personnalisation. IronQR prend en charge .NET Standard, ce qui le rend compatible avec un large éventail de plateformes, notamment ASP.NET Core. Avec IronQR, les développeurs peuvent générer sans effort des codes QR avec différents types de données, niveaux de correction d'erreurs, tailles et formats.

Caractéristiques principales

1. Lecture et création de codes QR

IronQR vous permet de générer et de lire facilement les codes QR. Que vous ayez besoin de créer des codes QR dynamiquement ou d'extraire des informations de codes existants, cette bibliothèque répond à tous vos besoins.

2. API conviviale

La bibliothèque fournit une API conviviale qui permet aux développeurs d'intégrer rapidement la fonctionnalité des codes-barres dans leurs projets .NET. Vous pouvez commencer à utiliser les codes QR en quelques minutes seulement.

3. Compatibilité

IronQR prend en charge différentes versions de .NET, notamment :

  1. C#, VB .NET, F#
  2. .NET Core (8, 7, 6, 5 et 3.1+)
  3. .NET Standard (2.0+)
  4. .NET Framework (4.6.2+)

Il couvre un large éventail de types de projets, notamment les applications web (Blazor et WebForms), mobiles (Xamarin et MAUI), de bureau (WPF et MAUI) et les applications console.

4. Modèle d'apprentissage automatique pour la détection des codes QR

IronQR utilise un modèle d'apprentissage automatique personnalisé et avancé pour détecter les codes QR. Cela garantit une reconnaissance de code précise et fiable. De plus, une option Slim Mode (non-ML) est disponible pour ceux qui préfèrent une approche légère.

5. Lecture des codes QR

Vous pouvez lire les codes QR à partir de différents formats d'image, notamment :

  1. Images (jpg, png, svg, bmp)
  2. Images multipages (gif, tif, tiff)
  3. System.Drawing Bitmaps
  4. Images de IronDrawing (AnyBitmap)

6. Écriture des codes QR

IronQR vous permet de créer des codes QR pour différents types de documents, tels que :

  1. Images (jpg, png, gif, tiff, bmp)
  2. System.Drawing Images
  3. Flux (MemoryStream, byte[])
  4. PDF (Tampon sur PDF existant)

7. Style des codes QR

Personnalisez les codes QR en les redimensionnant, en ajustant les marges et les bordures, en changeant les couleurs et en ajoutant des logos.

8. Gestion et correction des erreurs

IronQR fournit des messages d'erreur détaillés et prend en charge des niveaux de correction d'erreurs QR personnalisés.

Forts de ces connaissances, commençons par l'application permettant de générer un code QR en ASP.NET Core.

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

Avant de nous plonger dans la génération de codes QR, commençons par configurer un nouveau projet ASP.NET Core. Voici les étapes à suivre pour lancer un nouveau projet :

Commencez par créer un nouveau projet dans Visual Studio et sélectionnez le modèle d'application Web ASP.Net Core.

How to Generate QR Codes in ASP .NET Core: Figure 1 - Select the ASP.NET CORE web application template

Indiquez le nom et l'emplacement du projet.

How to Generate QR Codes in ASP .NET Core: Figure 2 - Name the project and the location you wish to save to

Sélectionnez la version .NET requise.

How to Generate QR Codes in ASP .NET Core: Figure 3 - Select the correct .NET version.

Cliquez sur le bouton " Créer " pour générer le code de l'application à partir du modèle.

How to Generate QR Codes in ASP .NET Core: Figure 4 - Click the "create" button to generate the template code

Étape 2 : Installez la bibliothèque IronQR à partir du Package Manager

Installez la bibliothèque IronQR à partir du gestionnaire de packages de Visual Studio comme indiqué ci-dessous.

How to Generate QR Codes in ASP .NET Core: Figure 5 - Search IronOCR using Visual Studio Package Manager and install it

IronQR peut également être installé à l'aide du gestionnaire de packages NuGet.

How to Generate QR Codes in ASP .NET Core: Figure 6 - Search for IronOCR using NuGet Package Manager

Étape 3 : Générer un code QR

Maintenant, créons une application de code QR.

Créer le modèle QRCode

using System.ComponentModel.DataAnnotations;

namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText { get; set; }
    }
}
using System.ComponentModel.DataAnnotations;

namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText { get; set; }
    }
}
$vbLabelText   $csharpLabel

Créer un contrôleur de codes QR

Pour ajouter une nouvelle manette, cliquez avec le bouton droit sur le dossier des manettes et indiquez un nom comme indiqué ci-dessous.

How to Generate QR Codes in ASP .NET Core: Figure 7 - Add a new controller by clicking on the folder and give it a name

Sélectionnez le contrôleur vide.

How to Generate QR Codes in ASP .NET Core: Figure 8 - Click Empty Controller on the prompt

Indiquez un nom.

How to Generate QR Codes in ASP .NET Core: Figure 9 - Name the controller

Ensuite, intégrez le code suivant dans le contrôleur.

using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;

namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;

namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}
$vbLabelText   $csharpLabel

Explication du code

Définition d'espace de noms et de classe

Le code commence par des instructions using, qui importent les espaces de noms nécessaires. L'espace de noms GenerateQRCode.Controllers contient la classe QrCodeController.

Constructeur de contrôleur

La classe QrCodeController possède un constructeur qui prend un paramètre IWebHostEnvironment. Ce paramètre est injecté par ASP.NET Core pour gérer les tâches liées à l'hébergement web.

Méthodes d'action

  • Index(): Cette méthode renvoie une vue (vraisemblablement une page HTML) lorsqu'elle est accédée. Cela ne semble pas être directement lié à la génération de codes QR.
  • CreateQRCode(QRCodeModel generateQRCode): Cette méthode est au cœur de la logique de génération du code QR. Il reçoit un objet QRCodeModel (contenant vraisemblablement le texte du code QR) comme paramètre.

À l'intérieur de la méthode

  • Crée un chemin pour enregistrer l'image du code QR généré.
  • Crée un objet code QR en utilisant QrWriter.Write(generateQRCode.QRCodeText).
  • Enregistre le code QR sous forme d'image bitmap.
  • Construit une URL d'image à partir des détails de la requête web.
  • Définit la propriété ViewBag.QrCodeUri avec l'URL de l'image.
  • Si des exceptions surviennent au cours de ce processus, elles sont levées.

Génération de codes QR

La génération du code QR proprement dite a lieu dans la méthode CreateQRCode. L'appel QrWriter.Write(generateQRCode.QRCodeText) crée un objet code QR basé sur le texte fourni.

Enregistrement d'image

Le code QR généré est enregistré sous forme d'image bitmap en utilisant qrImage.SaveAs(filePath). Le chemin d'accès au fichier image est construit à partir du chemin racine du site web et du nom de fichier souhaité.

URL de l'image

Le imageUrl est construit en utilisant le schéma, l'hôte et le chemin de base de la requête Web. Cette URL indique l'emplacement où l'image du code QR généré peut être consultée. Globalement, ce contrôleur gère la génération du code QR, l'enregistrement de l'image et la fourniture d'une URL d'image pour une utilisation ultérieure.

Ajouter une vue au contrôleur

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

How to Generate QR Codes in ASP .NET Core: Figure 10 - Add a new view in the `QrCodeController` class

Sélectionnez " Ajouter une vue ", puis " Vue Razor ". Cliquez sur le bouton " Ajouter ".

How to Generate QR Codes in ASP .NET Core: Figure 11 - Select the Add View option, then Razor View, then Add

Ensuite, sélectionnez le modèle "Créer" et la classe Modèle générée précédemment.

How to Generate QR Codes in ASP .NET Core: Figure 12 - Select the `Create` template generated previously

Remplacez maintenant le code ci-dessous dans la vue

@model GenerateQRCode.Models.QRCodeModel

@{
    ViewData["Title"] = "Generate QR Code";
}

<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <a href="#" class="btn btn-primary">Create QR Code</a>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@model GenerateQRCode.Models.QRCodeModel

@{
    ViewData["Title"] = "Generate QR Code";
}

<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <a href="#" class="btn btn-primary">Create QR Code</a>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
$vbLabelText   $csharpLabel

Faites de même pour la méthode d'action index, afin que l'application ne génère pas d'erreur lors du lancement de la requête POST.

Maintenant, dans Program.cs, modifiez le code suivant pour faire de la vue ci-dessus la route par défaut.

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

Cette action modifiera la route par défaut de HomeController à notre QrCodeController.

Maintenant, compilez et exécutez le projet.

How to Generate QR Codes in ASP .NET Core: Figure 13 - Example homepage from the project

Saisissez du texte dans la zone de texte et cliquez sur " Créer ". Cela créera un nouveau code QR comme indiqué ci-dessous.

How to Generate QR Codes in ASP .NET Core: Figure 14 - Enter any text and click create to create a new QR code utilizing IronQR

Ajouter du style aux codes QR

QrStyleOptions sont utilisés pour styliser la génération du code QR.

[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");

        // Create a QR Code object
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px size
            Margins = 10,     // px margins
            Color = Color.YellowGreen // custom color
        };

        // Save QR Code with style options as a bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);

        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");

        // Create a QR Code object
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px size
            Margins = 10,     // px margins
            Color = Color.YellowGreen // custom color
        };

        // Save QR Code with style options as a bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);

        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}
$vbLabelText   $csharpLabel

Sortie

How to Generate QR Codes in ASP .NET Core: Figure 15 - Modifying the color of the QR code programmatically

Licence (Essai disponible)

Pour les développeurs qui souhaitent tester IronQR, une licence d'essai est disponible ici . Cette clé de licence doit être placée dans le fichier appSettings.json. Cela permettra de supprimer le filigrane visible sur les images ci-dessus.

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

Conclusion

Dans cet article, nous avons exploré comment générer des codes QR dans ASP.NET Core en utilisant IronQR. En tirant parti de la puissance d'IronQR, les développeurs peuvent facilement intégrer la fonctionnalité de génération de codes QR dans leurs applications web. Que ce soit pour la billetterie, l'authentification ou le partage d'informations, les codes QR offrent une solution polyvalente pour transmettre efficacement des données. Avec IronQR, créer et personnaliser des codes QR dans ASP.NET Core n'a jamais été aussi simple. Commencez à intégrer la génération de codes QR dans vos projets ASP.NET Core et découvrez un monde de possibilités pour l'encodage et le partage dynamiques de données.

Questions Fréquemment Posées

Comment puis-je générer des codes QR dans ASP.NET Core ?

Pour générer des codes QR dans ASP.NET Core, vous pouvez utiliser la bibliothèque IronQR. Commencez par créer un nouveau projet ASP.NET dans Visual Studio, installez IronQR via le gestionnaire de packages et implémentez le code pour générer des codes QR en utilisant son API conviviale.

Quelles options de personnalisation sont disponibles pour les codes QR dans ASP.NET Core ?

IronQR offre plusieurs options de personnalisation pour les codes QR dans ASP.NET Core, y compris le redimensionnement, l'ajustement des marges, le changement de couleurs et l'ajout de logos. Ceux-ci peuvent être gérés en utilisant la classe QrStyleOptions.

Comment fonctionne la correction d'erreur lors de la génération de codes QR avec ASP.NET Core ?

IronQR vous permet de gérer les niveaux de correction d'erreur lors de la génération de codes QR dans ASP.NET Core. Cela garantit que les codes QR ont le niveau souhaité de résistance aux erreurs, essentiel pour un balayage fiable.

Puis-je lire des codes QR à partir de différents formats d'image dans ASP.NET Core ?

Oui, avec IronQR dans ASP.NET Core, vous pouvez lire des codes QR à partir de divers formats d'image tels que jpg, png, svg, bmp, gif, tif et tiff, ainsi que des Bitmaps System.Drawing et des Images IronDrawing (AnyBitmap).

Est-il possible de tester IronQR sans licence complète ?

Oui, vous pouvez obtenir une licence d'essai de IronQR sur le site Web de Iron Software. L'essai vous permet de tester la bibliothèque et de supprimer les filigranes des codes QR générés pendant la phase de test en plaçant la licence dans le fichier appSettings.json.

Quels sont les avantages d'utiliser des codes QR dans les applications web ?

Les codes QR sont bénéfiques pour les applications web car ils permettent un stockage et une transmission efficaces des données. Ils sont particulièrement utiles dans des applications telles que les systèmes de billetterie, l'authentification et la gestion des stocks, offrant un moyen dynamique de coder et de partager des informations.

Comment l'apprentissage automatique améliore-t-il la détection des codes QR dans ASP.NET Core ?

IronQR utilise un modèle d'apprentissage automatique personnalisé avancé pour la détection des codes QR, garantissant une haute précision et fiabilité dans la reconnaissance des codes. Pour les utilisateurs qui préfèrent une solution plus légère, un mode Slim non-ML est également disponible.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi