C# ; Application de génération de code QR

This article was translated from English: Does it need improvement?
Translated
View the article in English

Bienvenue dans notre guide sur la création deCodes QR en utilisant C#! Les codes QR et les codes-barres DLL .NET sont devenus des moyens populaires de partager des informations rapidement et efficacement. Que vous développiez une application, gériez un site web ou cherchiez simplement un moyen astucieux de partager des liens, ces codes peuvent s'avérer extrêmement utiles. Dans ce guide, nous verrons comment générer efficacement des codes QR à l'aide deIronQRvous pouvez ainsi générer des codes QR adaptés à vos besoins. Cette bibliothèque permet à toute personne travaillant avec C# de créer facilement des codes QR sans entrer dans une logique complexe. Nous vous accompagnerons tout au long des étapes, en veillant à ce que vous disposiez de tout ce dont vous avez besoin pour commencer. Que vous souhaitiez ajouter la fonctionnalité de génération de codes QR à votre application ou que vous soyez simplement curieux de savoir comment cela se passe, vous êtes au bon endroit. Commençons.

Installer la bibliothèque du générateur de code QR dans C&num ;

Commencez à utiliser IronQR dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer


Avant de commencer, nous devons installer le programme IronQR Paquet NuGet.

Install-Package IronQR

IronQR : Bibliothèque QR C

IronQR est une bibliothèque de code QR C# permettant d'intégrer la fonctionnalité de code QR dans les applications .NET. IronQR prend en charge un large éventail de versions de .NET et de types de projets, notamment C#, VB.NET, F#, .NET Core, .NET Standard, .NET Framework, et plus encore, garantissant ainsi la compatibilité avec divers environnements de développement tels que Windows, Linux, macOS, iOS et Android.

IronQR se distingue par ses fonctionnalités avancées, notamment la possibilité delire les codes QR etgénérer des codes QRle code QR peut être personnalisé en fonction de la taille de l'image, de son style et de l'ajout de logos aux codes QR.

Quelques caractéristiques clés d'IronQR

IronQR va au-delà de la génération de codes QR de base et propose plusieurs fonctions conçues pour répondre à un large éventail de tâches liées aux codes QR. Passons en revue ces fonctionnalités et vérifions leurs codes d'exemple que vous pourrez intégrer dans n'importe quel type de modèle d'application .NET comme l'application console.

Lire les codes QR

IronQR excelle dans le décodage des codes QR, offrant aux utilisateurs un moyen simple d'accéder aux informations incorporées dans les codes QR. Vous pouvez extraire rapidement et avec précision les données des codes QR, qu'il s'agisse de simples URL ou d'informations complexes intégrées.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-1.cs
using IronQr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

IronQr.License.LicenseKey = "License-Key";

// Load the image file that contains the QR Code
var inputImage = AnyBitmap.FromFile("QRCode.png");

// Prepare the image for QR code detection
QrImageInput qrInput = new QrImageInput(inputImage);

// Initialize the QR Code reader
QrReader qrReader = new QrReader();

// Execute QR Code reading on the provided image
IEnumerable<QrResult> qrResults = qrReader.Read(qrInput);

// Assuming you have the QR results in qrResults as before
foreach (var result in qrResults)
{
    Console.WriteLine(result.Value); // Print the QR code content to the console
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic

IronQr.License.LicenseKey = "License-Key"

' Load the image file that contains the QR Code
Dim inputImage = AnyBitmap.FromFile("QRCode.png")

' Prepare the image for QR code detection
Dim qrInput As New QrImageInput(inputImage)

' Initialize the QR Code reader
Dim qrReader As New QrReader()

' Execute QR Code reading on the provided image
Dim qrResults As IEnumerable(Of QrResult) = qrReader.Read(qrInput)

' Assuming you have the QR results in qrResults as before
For Each result In qrResults
	Console.WriteLine(result.Value) ' Print the QR code content to the console
Next result
VB   C#

Nous utilisons le code QR suivant pour la numérisation :

C# Créer une image de code QR

Et nous obtenons ce résultat :

Valeur QR C#

Le processus commence par l'intégration des espaces de noms nécessaires, IronQr et IronSoftware.Drawing, avec une mention spécifique de Color de l'espace de noms IronSoftware.Drawing pour gérer les manipulations d'images.

Avant de plonger dans le processus de lecture des codes QR, il est essentiel d'activer le logiciel avec votre clé de licence en l'attribuant à IronQr.License.LicenseKey. Le code charge ensuite l'image du code QR à partir d'un fichier à l'aide de AnyBitmap.FromFile("QRCode.png").

Une fois l'image chargée, l'étape suivante consiste à la préparer pour la détection du code QR. Cette préparation se fait par la création d'un objet QrImageInput, qui sert de conteneur pour l'image.

Le cœur de cette fonctionnalité réside dans la classe QrReader, qui est instanciée et utilisée pour effectuer l'opération de lecture du code QR. Le lecteur analyse l'image préparée, qrInput, à la recherche des codes QR qu'elle contient. Le résultat de cette opération est une collection d'objets QrResult, chacun représentant un code QR détecté dans l'image.

Pour accéder aux données encodées dans les codes QR et les utiliser, le code itère sur la collection de résultats à l'aide d'une boucle foreach. Chaque objet QrResult contient des propriétés telles que la valeur du code QR, qui peut être consultée et affichée.

Options du mode de lecture QR personnalisé

IronQR vous offre différentes façons de lire les codes QR à partir d'images, ce qui le rend polyvalent pour des besoins variés. L'une des options est le mode de balayage mixte, qui permet d'équilibrer la vitesse et la précision, utile lorsque les codes QR ne sont pas clairs ou sont partiellement cachés.

Un autre est l'apprentissage automatique (Machine Learning)(ML) Le mode Scan, qui utilise une technologie intelligente pour lire les codes QR qui sont endommagés ou difficiles à lire normalement. Ce mode est idéal pour les situations difficiles où les codes QR sont difficiles à détecter.

Enfin, il y a le mode de balayage de base, qui est le moyen le plus rapide et le plus simple de balayer des codes QR clairs et simples. C'est la meilleure solution lorsque vous avez besoin de résultats rapides et que les codes QR sont faciles à lire.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-2.cs
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.Collections.Generic;

IronQr.License.LicenseKey = "License-Key";

// Load the image file that contains the QR Code
var inputImage = AnyBitmap.FromFile("QRCode.png");

QrImageInput mixedScanInput = new QrImageInput(inputImage, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> mixedScanResults = new QrReader().Read(mixedScanInput);

QrImageInput mlScanInput = new QrImageInput(inputImage, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> mlScanResults = new QrReader().Read(mlScanInput);

QrImageInput basicScanInput = new QrImageInput(inputImage, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> basicScanResults = new QrReader().Read(basicScanInput);
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.Collections.Generic

IronQr.License.LicenseKey = "License-Key"

' Load the image file that contains the QR Code
Dim inputImage = AnyBitmap.FromFile("QRCode.png")

Dim mixedScanInput As New QrImageInput(inputImage, QrScanMode.OnlyDetectionModel)
Dim mixedScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(mixedScanInput)

Dim mlScanInput As New QrImageInput(inputImage, QrScanMode.OnlyDetectionModel)
Dim mlScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(mlScanInput)

Dim basicScanInput As New QrImageInput(inputImage, QrScanMode.OnlyBasicScan)
Dim basicScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(basicScanInput)
VB   C#

Lire les codes QR avancés

Les capacités avancées de lecture de codes QR d'IronQR sont conçues pour offrir une approche complète et nuancée de la numérisation et du décodage des codes QR. Cet ensemble de fonctionnalités va au-delà des fonctions de base de lecture des codes QR, en offrant un niveau d'interaction et d'extraction de données plus approfondi.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-3.cs
using IronQr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;

IronQr.License.LicenseKey = "License-Key";

var imageToScan = AnyBitmap.FromFile("QRCode.png");

QrImageInput qrInput = new QrImageInput(imageToScan);

QrReader qrScanner = new QrReader();

IEnumerable<QrResult> scanResults = qrScanner.Read(qrInput);

foreach (QrResult qrResult in scanResults)
{

    Console.WriteLine(qrResult.Value);

    Console.WriteLine(qrResult.Url);

    foreach (IronSoftware.Drawing.PointF coordinate in qrResult.Points)
    {
        Console.WriteLine($"{coordinate.X}, {coordinate.Y}");
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic

IronQr.License.LicenseKey = "License-Key"

Dim imageToScan = AnyBitmap.FromFile("QRCode.png")

Dim qrInput As New QrImageInput(imageToScan)

Dim qrScanner As New QrReader()

Dim scanResults As IEnumerable(Of QrResult) = qrScanner.Read(qrInput)

For Each qrResult As QrResult In scanResults

	Console.WriteLine(qrResult.Value)

	Console.WriteLine(qrResult.Url)

	For Each coordinate As IronSoftware.Drawing.PointF In qrResult.Points
		Console.WriteLine($"{coordinate.X}, {coordinate.Y}")
	Next coordinate
Next qrResult
VB   C#

Voici le résultat obtenu lorsque nous scannons le code QR à l'aide d'IronQR :

C# Lire le code QR Résultat

Nous utilisons le code QR suivant :

C# Créer une image de code QR

Chaque objet QrResult donne accès aux données décodées(Valeur)tout URL incorporé(Url)et les coordonnées spatiales(Points) du code QR dans l'image.

Pour chaque code QR détecté, IronQR propose des informations détaillées, notamment le contenu exact et les éventuelles URL contenues dans le code QR. En outre, la bibliothèque fournit les coordonnées précises des coins du code QR dans l'image(par le biais de la propriété des points).

Pour créer un générateur de code QR à l'aide de la bibliothèque de codes QR IronQR dans une application C#, suivez attentivement les étapes suivantes. Ce guide vous aidera à configurer une application Windows, à installer la bibliothèque IronQR, à écrire le code pour générer un code QR et à comprendre le résultat.

Étape 1 : Créer une application Windows dans Visual Studio

  • Commencez par lancer Visual Studio sur votre ordinateur.
  • Cliquez sur le bouton "Créer un nouveau projet".
  • Sélectionnez Windows Forms App comme type de projet. Veillez à choisir le langage C#.
    Application Windows Forms

    Saisissez un nom pour votre projet et sélectionnez l'emplacement où l'enregistrer. Sur l'écran suivant, sélectionnez le Framework .NET. Cliquez ensuite sur Créer.

    Configuration du projet

    Il créera et ouvrira une application Windows forms dans Visual Studio.

Étape 2 : Installation de la bibliothèque IronQR

Il est maintenant temps d'installer la bibliothèque IronQR dans le projet. Vous pouvez installer la bibliothèque IronQR de différentes manières. Choisissez celui qui vous convient le mieux :

Installation à l'aide du gestionnaire de paquets NuGet

  • Faites un clic droit sur votre projet dans l'explorateur de solutions et sélectionnez Gestion des paquets NuGet.
  • Tapez IronQR dans le champ de recherche et appuyez sur Entrée.
    Gérer les paquets NuGet

    Trouvez IronQR dans la liste et cliquez sur Installer à côté.

    Installer IronQR

Installation à l'aide de la console NuGet Package Manager

Allez dans Outils > NuGet Package Manager > Package Manager Console.

Gestionnaire de paquets NuGet

Tapez Install-Package IronQR et appuyez sur Entrée.

Installer IronQR

Étape 3 : Conception de la partie frontale

Générateur de code QR

3.1 En-tête du titre

Générer un code QR

Dès le lancement de l'application QR Code Generator, les utilisateurs sont immédiatement confrontés à un en-tête frappant intitulé "QR Generator IronQR", dans une police de caractères audacieuse et autoritaire. La police Agency FB a été choisie pour ses lignes épurées et modernes, qui donnent une impression d'efficacité et de précision. Avec une police de caractères de 48 points, le titre est à la fois proéminent et assertif, captant l'attention de l'utilisateur et établissant fermement l'identité de l'application.

3.2 Section d'entrée

Saisie de texte pour le code QR

Saisie du texte du code QR

Au cœur de la section de saisie se trouve un élément simple mais fondamental : la zone de saisie de texte. Ici, les utilisateurs peuvent saisir les données qu'ils souhaitent encoder dans leur code QR. L'encadré est spacieux, il peut contenir une quantité importante de texte et il est placé en évidence dans la partie supérieure.

Sélectionner un logo

En dessous du texte, la zone "Sélectionner un logo" permet une personnalisation supplémentaire. Les utilisateurs peuvent télécharger un logo qui sera intégré au code QR, ce qui permet d'améliorer la reconnaissance de la marque ou de personnaliser le code. La boîte à images adjacente donne un aperçu du logo sélectionné, offrant ainsi un retour visuel immédiat.

Configuration des couleurs

Couleur de fond

En se déplaçant vers la droite, l'interface présente des options pour la sélection des couleurs. Deux boutons, l'un pour la couleur du code QR et l'autre pour la couleur d'arrière-plan, permettent aux utilisateurs de personnaliser la palette de leur code QR. Les zones de texte riche situées à côté de ces boutons indiquent la couleur actuellement sélectionnée.

La présentation soignée de la section de saisie, avec ses options de texte, de logo et de couleur, témoigne d'une bonne compréhension des priorités de l'utilisateur lors de la création d'un code QR. Il allie fonctionnalité et flexibilité, permettant aux utilisateurs de saisir rapidement et efficacement les informations nécessaires tout en laissant place à la créativité.

3.3 Paramètres de style

Stylisme

Paramètres de dimension

À côté des outils de personnalisation des couleurs, les utilisateurs trouveront l'entrée "Dimensions" Ce paramètre numérique est essentiel car il dicte la taille globale du code QR, garantissant qu'il s'adapte parfaitement au contexte d'affichage prévu, qu'il s'agisse d'une carte de visite, d'un dépliant ou d'un écran numérique.

Réglages de la marge

À côté de l'entrée des dimensions, le champ "Marges" permet aux utilisateurs de spécifier l'espace blanc entourant le code QR. Les marges sont plus qu'un simple choix esthétique ; il s'agit d'un élément fonctionnel qui peut affecter la lisibilité du code QR par les scanners. L'application fournit un contrôle numérique de haut en bas permettant aux utilisateurs de régler facilement ce paramètre.

3.4 Aperçu de la sortie

Sortie QR

Une fois que l'utilisateur a lancé la génération du code QR, la grande boîte d'images sur le côté gauche du formulaire, intitulée "Sortie", devient le point central. Il sert d'affichage dynamique, fournissant un aperçu en temps réel du code QR généré. Ce retour d'information visuel immédiat est essentiel pour que les utilisateurs vérifient leurs choix de conception et s'assurent que le code QR répond à leurs attentes avant de l'enregistrer.

3.5 boutons d'action

Générer un QR

Code QR en C#

Le bouton "Générer QR" est un élément de contrôle central dans l'interface de l'application. Placé stratégiquement dans le formulaire, ce bouton est le catalyseur du processus de création du code QR. En cliquant sur ce bouton, l'application prend en compte toutes les données d'entrée et les paramètres de style définis par l'utilisateur et commence à générer un code QR personnalisé.

Enregistrer le code QR

Économiser

Une fois qu'un code QR a été généré et qu'il est affiché dans la zone de prévisualisation de la sortie, le bouton "Enregistrer QR" entre en jeu. Lorsque l'on clique dessus, une boîte de dialogue d'enregistrement s'ouvre, permettant à l'utilisateur de choisir le format de fichier et l'emplacement d'enregistrement souhaités.

Réinitialiser le formulaire

Remise à zéro

D'un simple clic, ce bouton efface toutes les entrées et sélections précédentes, rétablissant ainsi les valeurs par défaut de tous les paramètres. Il s'agit d'un aspect important du formulaire, qui offre un moyen rapide de réinitialiser l'application sans avoir à ajuster manuellement chaque option.

Étape 4 : Écrire la logique du backend

4.1 Configuration et initialisation

Tout d'abord, l'application commence par l'inclusion des espaces de noms nécessaires : IronQR et IronSoftware.Drawing. Ces espaces de noms sont essentiels car ils fournissent les fonctionnalités nécessaires pour générer et manipuler les codes QR et les couleurs dans l'application. La classe personnalisée Color est définie pour faciliter la gestion des couleurs lors de la génération du code QR, en surchargeant la classe par défaut System.Drawing.Color pour assurer la compatibilité avec les exigences d'IronQR.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-4.cs
using IronQr;
using IronSoftware.Drawing;
using Color = IronSoftware.Drawing.Color;

Imports IronQr
Imports IronSoftware.Drawing
Imports Color = IronSoftware.Drawing.Color
VB   C#

Le constructeur de la classe QR_Generator joue un rôle crucial dans la préparation de l'application. C'est ici que les composants de l'application sont initialisés, ce qui est une étape standard dans les applications Windows Forms pour configurer les éléments de l'interface utilisateur du formulaire.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-5.cs
public QR_Generator()
{
    InitializeComponent();
    SetLicenseKey();
    EnsureDirectoryExists(qrCodesDirectory);
}
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public QR_Generator()
Public Sub New()
	InitializeComponent()
	SetLicenseKey()
	EnsureDirectoryExists(qrCodesDirectory)
End Sub
VB   C#

SetLicenseKey : Cette méthode est appelée pour appliquer une clé de licence valide pour la bibliothèque IronQR. L'utilisation d'une clé de licence est obligatoire pour les applications commerciales et pour débloquer toutes les capacités de la bibliothèque IronQR.

EnsureDirectoryExists : Étant donné la nécessité de sauvegarder les codes QR générés, cette méthode permet de s'assurer qu'un répertoire dédié est disponible. Il vérifie si le répertoire "QR Codes" existe dans le chemin de démarrage de l'application et le crée si ce n'est pas le cas.

4.2 Configuration de la clé de licence

Pour que IronQR fonctionne sans limitations, une clé de licence valide doit être appliquée. Ceci est réalisé par la méthode SetLicenseKey, qui est une méthode statique conçue pour configurer la bibliothèque avec votre clé de licence achetée ou d'essai. L'extrait de code ci-dessous illustre comment définir la clé de licence :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-6.cs
private static void SetLicenseKey()
{
    IronQr.License.LicenseKey = "YOUR_LICENSE_KEY";
}
Private Shared Sub SetLicenseKey()
	IronQr.License.LicenseKey = "YOUR_LICENSE_KEY"
End Sub
VB   C#

Remplacez "YOUR_LICENSE_KEY" par la clé de licence que vous avez obtenue d'Iron Software. La méthode est appelée dans le constructeur de la classe QR_Generator, ce qui garantit que la licence est appliquée dès le démarrage de l'application et avant toute génération de code QR.

4.3 Gestion de l'annuaire

L'application utilise la méthode EnsureDirectoryExists pour vérifier si le répertoire spécifié pour le stockage des codes QR existe. Si ce n'est pas le cas, il crée le répertoire. Cette méthode prend un paramètre de type chaîne, qui est le chemin du répertoire à vérifier ou à créer. Voici comment il est mis en œuvre :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-7.cs
private static void EnsureDirectoryExists(string path)
{
    if (!System.IO.Directory.Exists(path))
    {
        System.IO.Directory.CreateDirectory(path);
    }
}
Private Shared Sub EnsureDirectoryExists(ByVal path As String)
	If Not System.IO.Directory.Exists(path) Then
		System.IO.Directory.CreateDirectory(path)
	End If
End Sub
VB   C#

Cette méthode utilise l'espace de noms System.IO pour interagir avec le système de fichiers. Il vérifie d'abord si le répertoire situé au niveau du chemin spécifié existe en utilisant Directory.Exists. Si le répertoire n'existe pas(false est renvoyé)il crée ensuite le répertoire à l'aide de Directory.CreateDirectory.

Le chemin d'accès au répertoire des codes QR est défini dans le constructeur de la classe QR_Generator en tant que qrCodesDirectory, qui combine le chemin de démarrage de l'application avec un nom de dossier "QR Codes" :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-8.cs
string qrCodesDirectory = System.IO.Path.Combine(Application.StartupPath, "QR Codes");
Dim qrCodesDirectory As String = System.IO.Path.Combine(Application.StartupPath, "QR Codes")
VB   C#

4.4 Sélection des couleurs

L'application fournit deux boutons sur l'interface utilisateur, chacun lié à une méthode de sélection des couleurs : btn_color_Click pour la couleur du code QR et btn_background_Click pour la couleur d'arrière-plan. Ces méthodes s'appuient sur une boîte de dialogue de couleurs pour permettre à l'utilisateur de choisir des couleurs.

Lorsqu'une couleur est sélectionnée à l'aide de la boîte de dialogue des couleurs, la couleur choisie est ensuite convertie en une chaîne de caractères hexadécimaux. Cela est nécessaire car la bibliothèque IronQR exige que les couleurs soient spécifiées au format hexadécimal. La conversion est effectuée par la méthode ColorToHex :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-9.cs
private string ColorToHex(System.Drawing.Color color)
{
    return $"#{color.R:X2}{color.G:X2}{color.B:X2}";
}
Private Function ColorToHex(ByVal color As System.Drawing.Color) As String
	Return $"#{color.R:X2}{color.G:X2}{color.B:X2}"
End Function
VB   C#

La méthode UpdateColor prend la couleur sélectionnée et la convertit au format IronSoftware.Drawing.Color en utilisant la chaîne hexadécimale, et met à jour la couleur d'avant-plan ou d'arrière-plan du code QR en fonction de la sélection. Il met également à jour l'interface utilisateur pour refléter le nouveau choix de couleurs :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-10.cs
private void UpdateColor(ref Color targetColor, Control display, bool isBackground)
{
    if (select_color.ShowDialog() == DialogResult.OK)
    {
        var hexColor = ColorToHex(select_color.Color);
        targetColor = new Color(hexColor);
        display.BackColor = select_color.Color;
    }
}
Private Sub UpdateColor(ByRef targetColor As Color, ByVal display As Control, ByVal isBackground As Boolean)
	If select_color.ShowDialog() = DialogResult.OK Then
		Dim hexColor = ColorToHex(select_color.Color)
		targetColor = New Color(hexColor)
		display.BackColor = select_color.Color
	End If
End Sub
VB   C#

L'application comprend un bouton(btn_logo_Click) qui, lorsqu'on clique dessus, ouvre une boîte de dialogue permettant à l'utilisateur de sélectionner un fichier image à utiliser comme logo. Cette fonctionnalité est essentielle pour les entreprises ou les particuliers qui souhaitent marquer leurs codes QR. Voici comment se déroule le processus de sélection et d'intégration du logo :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-11.cs
private void btn_logo_Click(object sender, EventArgs e)
{
    if (select_logo.ShowDialog() == DialogResult.OK)
    {
        try
        {
            logoBmp = new AnyBitmap(select_logo.FileName);
            selected_logo.Image = Image.FromFile(select_logo.FileName);
        }
        catch (Exception ex)
        {
            ShowError("An error occurred while loading the logo", ex.Message);
        }
    }
}
Private Sub btn_logo_Click(ByVal sender As Object, ByVal e As EventArgs)
	If select_logo.ShowDialog() = DialogResult.OK Then
		Try
			logoBmp = New AnyBitmap(select_logo.FileName)
			selected_logo.Image = Image.FromFile(select_logo.FileName)
		Catch ex As Exception
			ShowError("An error occurred while loading the logo", ex.Message)
		End Try
	End If
End Sub
VB   C#

Lorsqu'une image est sélectionnée avec succès, l'application tente de la charger et d'en afficher un aperçu. L'objet AnyBitmap, logoBmp, est alors défini avec l'image sélectionnée, que la logique de génération de QR utilise par la suite.

4.6 Génération de codes QR

Le processus de génération commence lorsque l'utilisateur clique sur le bouton "Generate", qui est lié à la méthode btn_generate_Click. Cette méthode agit comme un déclencheur, appelant la fonction GenerateQRCode où réside la logique de génération proprement dite.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-12.cs
private void btn_generate_Click(object sender, EventArgs e)
{
    GenerateQRCode();
}
Private Sub btn_generate_Click(ByVal sender As Object, ByVal e As EventArgs)
	GenerateQRCode()
End Sub
VB   C#

Dans la méthode GenerateQRCode, l'application construit un code QR sur la base des paramètres spécifiés, y compris le texte d'entrée et les options de style. La méthode encapsule la création d'un code QR, en appliquant les couleurs sélectionnées, les dimensions, les marges et, éventuellement, un logo.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-13.cs
private void GenerateQRCode()
{
    try
    {
        var options = new QrOptions(QrErrorCorrectionLevel.High);
        var myQr = QrWriter.Write(txt_QR.Text, options);
        var style = CreateStyleOptions();
        var qrImage = myQr.Save(style);
        var fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png";
        var fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName);
        qrImage.SaveAs(fullPath);
        pictureBox.Image = Image.FromFile(fullPath);
    }
    catch (Exception ex)
    {
        ShowError("An error occurred during QR code generation or saving", ex.Message);
    }
}
Private Sub GenerateQRCode()
	Try
		Dim options = New QrOptions(QrErrorCorrectionLevel.High)
		Dim myQr = QrWriter.Write(txt_QR.Text, options)
		Dim style = CreateStyleOptions()
		Dim qrImage = myQr.Save(style)
		Dim fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png"
		Dim fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName)
		qrImage.SaveAs(fullPath)
		pictureBox.Image = Image.FromFile(fullPath)
	Catch ex As Exception
		ShowError("An error occurred during QR code generation or saving", ex.Message)
	End Try
End Sub
VB   C#

L'objet QrOptions définit le niveau de correction des erreurs, améliorant ainsi la résistance du code QR aux dommages ou à l'obscurcissement. La méthode CreateStyleOptions génère un objet QrStyleOptions, qui comprend les paramètres personnalisés de l'utilisateur tels que les couleurs, les dimensions et le logo. Voici la méthode en détail :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-14.cs
private QrStyleOptions CreateStyleOptions()
{
    return new QrStyleOptions
    {
        BackgroundColor = bgColor,
        Color = color,
        Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"),
        Margins = Convert.ToInt32(txt_margin.Value),
        Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null
    };
}
Private Function CreateStyleOptions() As QrStyleOptions
'INSTANT VB TODO TASK: Throw expressions are not converted by Instant VB:
'ORIGINAL LINE: return new QrStyleOptions { BackgroundColor = bgColor, Color = color, Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"), Margins = Convert.ToInt32(txt_margin.Value), Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null };
	Return New QrStyleOptions With {
		.BackgroundColor = bgColor,
		.Color = color,
		.Dimensions = If(txt_dimension.Value > 0, Convert.ToInt32(txt_dimension.Value), throw New ArgumentException("Please select valid dimensions!")),
		.Margins = Convert.ToInt32(txt_margin.Value),
		.Logo = If(logoBmp IsNot Nothing, New QrLogo With {
			.Bitmap = logoBmp,
			.Width = 50,
			.Height = 50,
			.CornerRadius = 5
		}, Nothing)
	}
End Function
VB   C#

Cette méthode crée un objet QrStyleOptions, qui est ensuite utilisé par la logique de génération du code QR pour appliquer les préférences de l'utilisateur. Les options sont les suivantes :

  • BackgroundColor et Color : Ces propriétés définissent les couleurs d'arrière-plan et d'avant-plan du code QR, ce qui permet d'obtenir un aspect personnalisé qui peut correspondre aux préférences en matière d'image de marque ou d'esthétique.
  • Dimensions : Cette propriété détermine la taille du code QR, ce qui permet d'adapter le code QR à différents contextes ou supports.
  • Margins : Cette propriété définit la taille de la marge autour du code QR, garantissant qu'il est isolé des éléments environnants, ce qui peut être crucial pour l'évolutivité.
  • Logo : Si l'utilisateur a choisi d'inclure un logo, celui-ci est configuré ici avec des dimensions spécifiques et un rayon d'angle pour un aspect soigné.

4.7 Sauvegarder le code QR

La fonctionnalité d'enregistrement est déclenchée par le bouton "Save", qui est lié à la méthode btn_save_Click. Cette méthode appelle SaveQRCode, qui met en œuvre la logique d'enregistrement. Le processus comprend l'affichage d'une boîte de dialogue d'enregistrement de fichier, permettant à l'utilisateur de choisir le format de fichier et l'emplacement pour l'enregistrement du code QR.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-15.cs
private void btn_save_Click(object sender, EventArgs e)
{
    SaveQRCode();
}

private void SaveQRCode()
{
    if (pictureBox.Image == null)
    {
        MessageBox.Show("There is no QR code to save.", "Error");
        return;
    }

    saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg";
    saveFileDialog.Title = "Save QR Code";
    saveFileDialog.FileName = "QRCode";

    if (saveFileDialog.ShowDialog() == DialogResult.OK)
    {
        try
        {
            pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName));
            MessageBox.Show("QR Code has been saved!", "Success");
        }
        catch (Exception ex)
        {
            ShowError("An error occurred while saving the QR code", ex.Message);
        }
    }
}
Private Sub btn_save_Click(ByVal sender As Object, ByVal e As EventArgs)
	SaveQRCode()
End Sub

Private Sub SaveQRCode()
	If pictureBox.Image Is Nothing Then
		MessageBox.Show("There is no QR code to save.", "Error")
		Return
	End If

	saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg"
	saveFileDialog.Title = "Save QR Code"
	saveFileDialog.FileName = "QRCode"

	If saveFileDialog.ShowDialog() = DialogResult.OK Then
		Try
			pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName))
			MessageBox.Show("QR Code has been saved!", "Success")
		Catch ex As Exception
			ShowError("An error occurred while saving the QR code", ex.Message)
		End Try
	End If
End Sub
VB   C#

Cette méthode vérifie si un code QR généré est disponible. Si c'est le cas, il propose à l'utilisateur d'enregistrer le fichier au format PNG ou JPEG. La fonction DetermineImageFormat garantit que l'image est enregistrée dans le bon format en fonction de l'extension de fichier choisie par l'utilisateur.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-16.cs
private System.Drawing.Imaging.ImageFormat DetermineImageFormat(string filePath)
{
    return System.IO.Path.GetExtension(filePath).ToLower() == ".jpg" ? System.Drawing.Imaging.ImageFormat.Jpeg : System.Drawing.Imaging.ImageFormat.Png;
}
Private Function DetermineImageFormat(ByVal filePath As String) As System.Drawing.Imaging.ImageFormat
	Return If(System.IO.Path.GetExtension(filePath).ToLower() = ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg, System.Drawing.Imaging.ImageFormat.Png)
End Function
VB   C#

Cette flexibilité permet aux utilisateurs de choisir le format qui répond le mieux à leurs besoins, qu'il s'agisse de privilégier la qualité(PNG) ou la taille du fichier(JPEG).

4.8 Réinitialisation de l'application

La fonctionnalité de réinitialisation est liée à un bouton "Reset", qui invoque la méthode btn_reset_Click. Cette méthode appelle à son tour ResetFields, une fonction conçue pour effacer toutes les entrées de l'utilisateur et rétablir les valeurs par défaut de tous les paramètres, y compris les champs de texte, les sélections de couleurs et le logo sélectionné.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-17.cs
private void btn_reset_Click(object sender, EventArgs e)
{
    ResetFields();
}

private void ResetFields()
{
    txt_QR.Text = string.Empty;
    txt_dimension.Value = 200;
    txt_margin.Value = 0;
    bgColor = Color.White;
    color = Color.Black;
    txt_selected_color.BackColor = System.Drawing.Color.White;
    txt_selected_bgcolor.BackColor = System.Drawing.Color.Black;
    logoBmp = null;
    selected_logo.Image = null;
    pictureBox.Image = null;
}
Private Sub btn_reset_Click(ByVal sender As Object, ByVal e As EventArgs)
	ResetFields()
End Sub

Private Sub ResetFields()
	txt_QR.Text = String.Empty
	txt_dimension.Value = 200
	txt_margin.Value = 0
	bgColor = Color.White
	color = Color.Black
	txt_selected_color.BackColor = System.Drawing.Color.White
	txt_selected_bgcolor.BackColor = System.Drawing.Color.Black
	logoBmp = Nothing
	selected_logo.Image = Nothing
	pictureBox.Image = Nothing
End Sub
VB   C#

Cette méthode réinitialise chaque composant impliqué dans la génération du code QR. Par exemple, il efface le texte du code QR, règle les dimensions et les marges sur les valeurs par défaut et supprime les couleurs ou les logos sélectionnés.

4.9 Gestion des erreurs

L'application utilise la méthode ShowError pour afficher les messages d'erreur de manière conviviale. Cette méthode prend deux paramètres : un titre et un message, qui fournissent à l'utilisateur le contexte de l'erreur. Voici comment il est mis en œuvre :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-18.cs
private static void ShowError(string title, string message)
{
    MessageBox.Show($"{title}: {message}", "Error");
}
Private Shared Sub ShowError(ByVal title As String, ByVal message As String)
	MessageBox.Show($"{title}: {message}", "Error")
End Sub
VB   C#

Cette méthode est utilisée dans différentes parties de l'application afin de garantir qu'en cas d'erreur, l'utilisateur est rapidement informé par un message clair et concis. Par exemple, si une erreur se produit lors du chargement du logo ou pendant le processus de génération du code QR, l'application appelle ShowError pour afficher les détails du problème.

4.10 Exemple de code complet

Voici le code complet qui vous aidera à comprendre le code beaucoup plus facilement :

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-19.cs
using IronQr;
using IronSoftware.Drawing;
using Color = IronSoftware.Drawing.Color;

namespace IronQR_QR_Generator_WinForms
{
    public partial class QR_Generator : Form
    {
        string qrCodesDirectory = System.IO.Path.Combine(Application.StartupPath, "QR Codes");
        Color bgColor = Color.White;
        Color color = Color.Black;
        AnyBitmap? logoBmp = null;

        public QR_Generator()
        {
            InitializeComponent();
            SetLicenseKey();
            EnsureDirectoryExists(qrCodesDirectory);
        }

        private static void SetLicenseKey()
        {
            IronQr.License.LicenseKey = "License-Key";
        }

        private static void EnsureDirectoryExists(string path)
        {
            if (!System.IO.Directory.Exists(path))
            {
                System.IO.Directory.CreateDirectory(path);
            }
        }

        private void btn_color_Click(object sender, EventArgs e)
        {
            UpdateColor(ref color, txt_selected_color, false);
        }

        private void btn_background_Click(object sender, EventArgs e)
        {
            UpdateColor(ref bgColor, txt_selected_bgcolor, true);
        }

        private string ColorToHex(System.Drawing.Color color)
        {
            return $"#{color.R:X2}{color.G:X2}{color.B:X2}";
        }
        private void UpdateColor(ref Color targetColor, Control display, bool isBackground)
        {
            if (select_color.ShowDialog() == DialogResult.OK)
            {

                var hexColor = ColorToHex(select_color.Color);
                targetColor = new Color(hexColor);
                display.BackColor = select_color.Color;
            }
        }

        private void btn_logo_Click(object sender, EventArgs e)
        {
            if (select_logo.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    logoBmp = new AnyBitmap(select_logo.FileName);
                    selected_logo.Image = Image.FromFile(select_logo.FileName);
                }
                catch (Exception ex)
                {
                    ShowError("An error occurred while loading the logo", ex.Message);
                }
            }
        }

        private void btn_generate_Click(object sender, EventArgs e)
        {
            GenerateQRCode();
        }

        private void GenerateQRCode()
        {
            try
            {
                var options = new QrOptions(QrErrorCorrectionLevel.High);
                var myQr = QrWriter.Write(txt_QR.Text, options);
                var style = CreateStyleOptions();
                var qrImage = myQr.Save(style);
                var fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png";
                var fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName);
                qrImage.SaveAs(fullPath);
                pictureBox.Image = Image.FromFile(fullPath);
            }
            catch (Exception ex)
            {
                ShowError("An error occurred during QR code generation or saving", ex.Message);
            }
        }

        private QrStyleOptions CreateStyleOptions()
        {
            return new QrStyleOptions
            {
                BackgroundColor = bgColor,
                Color = color,
                Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"),
                Margins = Convert.ToInt32(txt_margin.Value),
                Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null
            };
        }

        private void btn_save_Click(object sender, EventArgs e)
        {
            SaveQRCode();
        }

        private void SaveQRCode()
        {
            if (pictureBox.Image == null)
            {
                MessageBox.Show("There is no QR code to save.", "Error");
                return;
            }

            saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg";
            saveFileDialog.Title = "Save QR Code";
            saveFileDialog.FileName = "QRCode";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName));
                    MessageBox.Show("QR Code has been saved!", "Success");
                }
                catch (Exception ex)
                {
                    ShowError("An error occurred while saving the QR code", ex.Message);
                }
            }
        }

        private System.Drawing.Imaging.ImageFormat DetermineImageFormat(string filePath)
        {
            return System.IO.Path.GetExtension(filePath).ToLower() == ".jpg" ? System.Drawing.Imaging.ImageFormat.Jpeg : System.Drawing.Imaging.ImageFormat.Png;
        }

        private void btn_reset_Click(object sender, EventArgs e)
        {
            ResetFields();
        }

        private void ResetFields()
        {
            txt_QR.Text = string.Empty;
            txt_dimension.Value = 200;
            txt_margin.Value = 0;
            bgColor = Color.White;
            color = Color.Black;
            txt_selected_color.BackColor = bgColor;
            txt_selected_bgcolor.BackColor = color;
            logoBmp = null;
            selected_logo.Image = null;
            pictureBox.Image = null;
        }

        private static void ShowError(string title, string message)
        {
            MessageBox.Show($"{title}: {message}", "Error");
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Color = IronSoftware.Drawing.Color

Namespace IronQR_QR_Generator_WinForms
	Partial Public Class QR_Generator
		Inherits Form

		Private qrCodesDirectory As String = System.IO.Path.Combine(Application.StartupPath, "QR Codes")
		Private bgColor As Color = Color.White
		Private color As Color = Color.Black
		Private logoBmp? As AnyBitmap = Nothing

		Public Sub New()
			InitializeComponent()
			SetLicenseKey()
			EnsureDirectoryExists(qrCodesDirectory)
		End Sub

		Private Shared Sub SetLicenseKey()
			IronQr.License.LicenseKey = "License-Key"
		End Sub

		Private Shared Sub EnsureDirectoryExists(ByVal path As String)
			If Not System.IO.Directory.Exists(path) Then
				System.IO.Directory.CreateDirectory(path)
			End If
		End Sub

		Private Sub btn_color_Click(ByVal sender As Object, ByVal e As EventArgs)
			UpdateColor(color, txt_selected_color, False)
		End Sub

		Private Sub btn_background_Click(ByVal sender As Object, ByVal e As EventArgs)
			UpdateColor(bgColor, txt_selected_bgcolor, True)
		End Sub

		Private Function ColorToHex(ByVal color As System.Drawing.Color) As String
			Return $"#{color.R:X2}{color.G:X2}{color.B:X2}"
		End Function
		Private Sub UpdateColor(ByRef targetColor As Color, ByVal display As Control, ByVal isBackground As Boolean)
			If select_color.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

				Dim hexColor = ColorToHex(select_color.Color)
				targetColor = New Color(hexColor)
				display.BackColor = select_color.Color
			End If
		End Sub

		Private Sub btn_logo_Click(ByVal sender As Object, ByVal e As EventArgs)
			If select_logo.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
				Try
					logoBmp = New AnyBitmap(select_logo.FileName)
					selected_logo.Image = Image.FromFile(select_logo.FileName)
				Catch ex As Exception
					ShowError("An error occurred while loading the logo", ex.Message)
				End Try
			End If
		End Sub

		Private Sub btn_generate_Click(ByVal sender As Object, ByVal e As EventArgs)
			GenerateQRCode()
		End Sub

		Private Sub GenerateQRCode()
			Try
				Dim options = New QrOptions(QrErrorCorrectionLevel.High)
				Dim myQr = QrWriter.Write(txt_QR.Text, options)
				Dim style = CreateStyleOptions()
				Dim qrImage = myQr.Save(style)
				Dim fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png"
				Dim fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName)
				qrImage.SaveAs(fullPath)
				pictureBox.Image = Image.FromFile(fullPath)
			Catch ex As Exception
				ShowError("An error occurred during QR code generation or saving", ex.Message)
			End Try
		End Sub

		Private Function CreateStyleOptions() As QrStyleOptions
'INSTANT VB TODO TASK: Throw expressions are not converted by Instant VB:
'ORIGINAL LINE: return new QrStyleOptions { BackgroundColor = bgColor, Color = color, Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"), Margins = Convert.ToInt32(txt_margin.Value), Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null };
			Return New QrStyleOptions With {
				.BackgroundColor = bgColor,
				.Color = color,
				.Dimensions = If(txt_dimension.Value > 0, Convert.ToInt32(txt_dimension.Value), throw New ArgumentException("Please select valid dimensions!")),
				.Margins = Convert.ToInt32(txt_margin.Value),
				.Logo = If(logoBmp IsNot Nothing, New QrLogo With {
					.Bitmap = logoBmp,
					.Width = 50,
					.Height = 50,
					.CornerRadius = 5
				}, Nothing)
			}
		End Function

		Private Sub btn_save_Click(ByVal sender As Object, ByVal e As EventArgs)
			SaveQRCode()
		End Sub

		Private Sub SaveQRCode()
			If pictureBox.Image Is Nothing Then
				MessageBox.Show("There is no QR code to save.", "Error")
				Return
			End If

			saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg"
			saveFileDialog.Title = "Save QR Code"
			saveFileDialog.FileName = "QRCode"

			If saveFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
				Try
					pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName))
					MessageBox.Show("QR Code has been saved!", "Success")
				Catch ex As Exception
					ShowError("An error occurred while saving the QR code", ex.Message)
				End Try
			End If
		End Sub

		Private Function DetermineImageFormat(ByVal filePath As String) As System.Drawing.Imaging.ImageFormat
			Return If(System.IO.Path.GetExtension(filePath).ToLower() = ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg, System.Drawing.Imaging.ImageFormat.Png)
		End Function

		Private Sub btn_reset_Click(ByVal sender As Object, ByVal e As EventArgs)
			ResetFields()
		End Sub

		Private Sub ResetFields()
			txt_QR.Text = String.Empty
			txt_dimension.Value = 200
			txt_margin.Value = 0
			bgColor = Color.White
			color = Color.Black
			txt_selected_color.BackColor = bgColor
			txt_selected_bgcolor.BackColor = color
			logoBmp = Nothing
			selected_logo.Image = Nothing
			pictureBox.Image = Nothing
		End Sub

		Private Shared Sub ShowError(ByVal title As String, ByVal message As String)
			MessageBox.Show($"{title}: {message}", "Error")
		End Sub
	End Class
End Namespace
VB   C#

Étape 5 : Exécuter l'application

Lorsque l'application est exécutée, la fenêtre principale apparaît comme le montre l'image ci-dessous. La mise en page est soigneusement organisée en sections pour l'entrée, le style, la sortie et les actions.

Application Output

La première étape du processus consiste à saisir des données dans le champ "Input QR Text". Ces données constitueront le contenu du code QR, tel qu'une URL ou des informations textuelles. Ensuite, pour personnaliser le code QR, nous sélectionnons un logo en cliquant sur le bouton "Select Logo". Lors de la sélection, le logo est placé de manière visible dans la boîte de prévisualisation adjacente au bouton, confirmant ainsi son intégration dans la conception du code QR.

Logo

Après la sélection du logo, nous choisissons les couleurs d'avant-plan et d'arrière-plan du code QR. Après avoir cliqué sur les boutons respectifs, les couleurs choisies sont reflétées dans les cases d'affichage des couleurs à côté de chaque bouton, ce qui nous donne une confirmation visuelle immédiate de nos choix.

Sélecteur de couleurs

Pour ce code QR particulier, nous avons fixé les dimensions à 500, afin que le code ait une taille adaptée à nos besoins, et nous avons ajusté les marges à 20, ce qui permet de créer un tampon autour du code QR pour éviter les problèmes de lecture.

Dimensions

Une fois toutes les entrées et les options de style définies, nous procédons à la génération du code QR en cliquant sur le bouton "Generate QR". L'application traite nos données et affiche le code QR fraîchement créé dans la zone d'image de sortie.

Lecture des codes QR Sortie

Pour enregistrer le code QR généré, il suffit de cliquer sur le bouton "Enregistrer QR". Cette action ouvre une boîte de dialogue d'enregistrement, qui nous permet de choisir la destination et le format de fichier de notre image de code QR.

Boîte de dialogue d'enregistrement

Une fois enregistré, un message de réussite confirme que le code QR a été enregistré avec succès.

Message de réussite

Si nous devons recommencer ou créer un nouveau code QR, cliquer sur le bouton "Réinitialiser le formulaire" ramène le formulaire à son état d'origine, en effaçant tous les champs et toutes les sélections, prêt pour la prochaine génération de code QR.

Réinitialiser le formulaire

Voici le code QR enregistré généré par IronQR :

Sortie du code QR

Conclusion

En conclusion, ce guide vous a permis de découvrir comment générer des codes QR à l'aide de la bibliothèque IronQR dans une application C#. En décomposant les étapes de la configuration de votre projet dans Visual Studio, de l'intégration de la bibliothèque IronQR, de la conception d'une interface conviviale et de l'écriture de la logique d'arrière-plan, nous avons démontré à quel point il est accessible d'ajouter une fonctionnalité de code QR à vos applications.

Pour ceux qui souhaitent explorer plus avant les capacités d'IronQR, il est intéressant de noter qu'IronQR offre un service d'aide à l'achat d'actions essai gratuit pour vous aider à démarrer. Si vous décidez d'intégrer IronQR dans vos projets, les licences commencent à $749, fournissant une solution rentable pour la génération de codes QR de qualité professionnelle.