Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Lecteur de codes QR en C# (Tutoriel étape par étape pour débutant)

Dans le monde numérique d'aujourd'hui, les codes QR (codes à réponse rapide) sont devenus omniprésents, connectant sans effort les mondes physique et numérique. Du marketing à la logistique, de la finance à la santé, les codes QR jouent un rôle central dans la facilitation de l'échange efficace de données.

Dans cet article, nous plongeons dans le domaine du développement C#, explorant comment IronQR, l'une des meilleures bibliothèques de code QR du marché, permet aux développeurs de tirer parti de la reconnaissance de code QR, de décoder les données sans effort et d'innover dans divers domaines.

IronQR de Iron Software se distingue comme une robuste bibliothèque de lecture de code QR pour .NET. Le modèle d'apprentissage automatique avancé implémenté par IronQR permet à vos applications de décoder les codes QR avec une précision et une efficacité inégalées, même dans des scénarios difficiles.

Comment lire les codes QR en utilisant C# avec IronQR

  1. Créez un projet Visual Studio avec un modèle d'application Windows Forms .NET.
  2. Install IronQR from the NuGet package manager.
  3. Obtenez le code QR de la caméra sous forme d'image en utilisant la bibliothèque AForge.
  4. Lisez les codes QR en utilisant IronQR.

IronQR se distingue comme la bibliothèque de lecture de codes QR C# de premier plan conçue pour scanner et générer des images de codes QR dans le cadre de .NET. Grâce à l'utilisation de la technologie ML de pointe, IronQR a élevé la lecture des codes QR à des niveaux sans précédent.

Que vous scanniez des codes QR à partir d'images, de vidéos ou de flux de caméra en direct, la solution optimisée par l'IA garantit une récupération rapide et fiable de l'information.

Cette approche innovante simplifie non seulement l'extraction des données mais améliore également la sécurité en distinguant entre les codes QR authentiques et les menaces potentielles. Avec son API intuitive, les développeurs peuvent intégrer sans effort les capacités de code QR dans leurs projets .NET en quelques minutes.

IronQR s'intègre parfaitement à .NET Core (8, 7, 6, 5 et 3.1+), .NET Standard (2.0+), et .NET Framework (4.6.2+). La version actuelle de .NET Core étend son support aux systèmes d'exploitation clients comme Linux, Unix et macOS, ainsi qu'à la compatibilité pour le développement d'applications mobiles.

Prérequis

  1. Visual Studio : Assurez-vous que Visual Studio ou tout autre environnement de développement .NET soit installé.
  2. Caméra compatible : Assurez-vous que la caméra est connectée à votre appareil.
  3. Gestionnaire de packages NuGet : Vérifiez que vous pouvez utiliser NuGet pour gérer les packages dans votre projet.

Étape 1 : Créez un projet Visual Studio avec un modèle d'application Windows Forms .NET

Commençons par créer une application Windows Forms .NET pour lire les codes-barres QR à partir de flux vidéo de caméra ou de fichiers image. Ouvrez Visual Studio, sélectionnez Créer un nouveau projet, puis sélectionnez le modèle d'application Windows Forms .NET.

![Configuration de Visual Studio]

Cliquez sur Suivant et entrez le nom du projet.

![Nom du projet]

Sélectionnez les versions .NET souhaitées, puis cliquez sur le bouton Créer.

![Créer un projet]

Étape 2 : Installez IronQR du gestionnaire de packages NuGet

IronQR can be installed using the NuGet ou le gestionnaire de packages de Visual Studio.

![Installation de NuGet]

Ci-dessous, comment vous pouvez le faire en utilisant Visual Studio.

![Visual Studio NuGet]

Étape 3 : Obtenez le code QR de la caméra sous forme d'image en utilisant la bibliothèque AForge

Pour scanner les codes QR à partir des appareils photo, nous devons installer la bibliothèque AForge.Video.DirectShow. Cela peut être fait en utilisant le gestionnaire de packages Visual Studio. Cliquez-droit sur l'Explorateur de solutions et ouvrez le Gestionnaire de packages.

![Étape 1 de l'installation d'AForge]

Cette bibliothèque peut également être installée en utilisant la console de gestion de packages NuGet comme montré ci-dessous. Cliquez sur le bouton Installer pour installer la bibliothèque.

![Étape 2 de l'installation d'AForge]

Étape 4 : Lisez les codes QR en utilisant IronQR

L'étape suivante consiste à créer un composant PictureBox dans le Formulaire, ce qui est nécessaire pour scanner l'image du code QR à partir de l'appareil photo connecté à la machine.

Cela peut être fait en glissant-déposant depuis la boîte à outils. Cette PictureBox est nécessaire pour lire les données du code QR depuis l'appareil photo.

![Ajouter PictureBox]

Ensuite, glissez et déposez une boîte de texte pour afficher les codes QR lus.

![Ajouter TextBox]

Ajoutez le code ci-dessous pour lire les codes QR et les décoder en utilisant IronQR.

using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}
using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}
Imports AForge.Video.DirectShow
Imports AForge.Video
Imports System
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Linq
Imports System.Windows.Forms
Imports IronQR

Namespace ReadQR
	Partial Public Class Form1
		Inherits Form

		' Declare a video capture device
		Private videoSource As VideoCaptureDevice

		Public Sub New()
			InitializeComponent()
			AddHandler Me.Load, AddressOf Form1_Load
			AddHandler Me.FormClosing, AddressOf Form1_FormClosing
		End Sub

		Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
			' Stop the video source when the form is closing
			If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
				videoSource.SignalToStop()
				videoSource.WaitForStop()
			End If
		End Sub

		Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
			' Retrieve video input devices connected to the machine
			Dim videoDevices As New FilterInfoCollection(FilterCategory.VideoInputDevice)

			If videoDevices.Count > 0 Then
				' Use the first available video device
				videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
				AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
				videoSource.Start()
			Else
				MessageBox.Show("No video devices found.")
				Close()
			End If
		End Sub

		Private Sub VideoSource_NewFrame(ByVal sender As Object, ByVal eventArgs As NewFrameEventArgs)
			' Update the PictureBox with the new frame from the camera
			pictureBox1.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)

			Dim image = DirectCast(eventArgs.Frame.Clone(), Bitmap)

			' Set the license key for IronQR. Replace "YourKey" with your actual key
			License.LicenseKey = "YourKey"

			' Prepare the image for QR code reading
			Dim imageInput As New QrImageInput(image)

			' Create a QR reader object
			Dim reader As New QrReader()

			' Read QR codes from the image
			Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

			' Display the first QR code result in a MessageBox
			If results.Any() Then
				MessageBox.Show(results.First().Value)
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Fichier image d'entrée

Le texte encodé dans le code QR est : I Love IronQR

![Exemple de code QR]

Sortie

![Résultat du code QR]

Explication du code exemple

  1. Nous avons enregistré deux événements dans les Windows Forms : Form1_Load et Form1_FormClosing.
  2. Nous avons également enregistré VideoSource_NewFrame à une instance de videoSource de la bibliothèque AForge.Video.DirectShow.
  3. Nous lisons les codes QR depuis le flux vidéo en direct.
  4. Lorsqu'un code QR est détecté, nous affichons une MessageBox avec le texte décodé.

Licence (Essai Gratuit Disponible)

IronQR nécessite une clé de licence. Une clé d'essai peut être obtenue depuis le site web ici. Cette clé doit être placée dans appsettings.json.

{
    "IronQR.LicenseKey": "MYLICENSE.KEY.TRIAL"
}

Fournissez l'ID email pour obtenir une licence d'essai, et après soumission, la clé sera envoyée par email.

![Clé de licence]

Conclusion

En conclusion, les codes QR ont transcendé leurs origines pour devenir indispensables dans notre écosystème numérique. Avec IronQR, les développeurs C# peuvent exploiter le pouvoir de la reconnaissance des codes QR, décoder les données de divers types de codes QR avec facilité, et innover dans divers domaines.

Alors que les codes QR continuent à évoluer et à s'intégrer dans de nouvelles technologies, leur importance dans la facilitation de l'échange de données fluide et l'enrichissement des expériences utilisateur ne fera que croître. Explorez le potentiel des codes QR avec IronQR et embarquez sur un parcours d'innovation et d'efficacité dans le développement C#.

Questions Fréquemment Posées

Comment configurer un projet C# pour lire les codes QR ?

Pour configurer un projet C# pour lire les codes QR, commencez par créer une nouvelle application Windows Forms dans Visual Studio. Installez la bibliothèque IronQR depuis le Gestionnaire de paquets NuGet, et assurez-vous d'avoir la bibliothèque AForge.Video.DirectShow pour capter les flux vidéo de la caméra.

Quels sont les avantages d'utiliser IronQR pour la lecture des codes QR ?

IronQR fournit des capacités robustes pour la lecture de codes QR en exploitant des modèles avancés de machine learning. Il assure un décodage précis même dans des conditions difficiles et est compatible avec divers frameworks .NET et systèmes d'exploitation.

Comment décoder un code QR en utilisant IronQR dans une application C# ?

Pour décoder un code QR dans une application C# avec IronQR, capturez une image du flux de la caméra à l'aide d'AForge, puis utilisez la bibliothèque IronQR pour traiter et décoder le code QR à partir de l'image capturée.

IronQR peut-il décoder des codes QR à partir de flux vidéo en direct ?

Oui, IronQR peut décoder des codes QR à partir de flux vidéo en direct en s'intégrant à la bibliothèque AForge.Video.DirectShow pour capturer des images et les traiter en temps réel.

Quelles bibliothèques sont essentielles pour construire un lecteur de code QR en C# ?

Les bibliothèques essentielles pour construire un lecteur de code QR en C# incluent IronQR pour le décodage des codes QR et AForge.Video.DirectShow pour capter les flux vidéo de la caméra.

Comment IronQR assure-t-il l'intégrité des données lors du décodage des codes QR ?

IronQR renforce la sécurité et assure l'intégrité des données en distinguant avec précision entre les codes QR authentiques et les menaces potentielles, maintenant ainsi la fiabilité des informations décodées.

Est-il possible de scanner des codes QR à partir d'images en utilisant IronQR ?

Oui, IronQR peut scanner des codes QR non seulement à partir de flux en direct mais aussi à partir d'images statiques, offrant flexibilité pour divers besoins d'application.

Comment obtenir une licence d'essai pour IronQR ?

Vous pouvez obtenir une licence d'essai pour IronQR sur le site web de Iron Software, ce qui vous permet de tester les fonctionnalités de la bibliothèque en plaçant la clé d'essai dans le fichier appsettings.json de votre application.

Quel rôle joue le composant PictureBox dans une application de lecteur de code QR ?

Dans une application de lecteur de code QR, le composant PictureBox affiche le flux vidéo en direct de la caméra, permettant à IronQR de capturer et de décoder les codes QR à partir des images reçues.

Comment résoudre les problèmes de décodage de codes QR en C# ?

Si vous rencontrez des problèmes de décodage de codes QR, assurez-vous que les bibliothèques IronQR et AForge sont correctement installées, vérifiez que le flux vidéo de la caméra est bien intégré, et assurez-vous que votre application capture et traite correctement les images vidéo.

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