Passer au contenu du pied de page
UTILISATION D'IRONQR

Comment lire un QR à partir d'une image en C#

Les codes QR (Quick Response Codes) sont omniprésents : sur les emballages de produits, les billets d'événements, les menus et même les cartes de visite. En tant que développeur .NET, la possibilité de lire rapidement et de manière fiable des codes QR à partir d'images peut ouvrir la voie à de puissantes fonctions d'automatisation et d'interaction avec l'utilisateur. Dans ce guide, nous allons vous expliquer comment utiliser IronQR, une bibliothèque de codes QR très performante construite spécifiquement pour .NET, pour lire des codes QR à partir d'images avec seulement quelques lignes de code C#.

Que vous construisiez un logiciel de gestion des stocks, que vous intégriez une authentification à deux facteurs ou que vous décodiez simplement des URL à partir de captures d'écran, IronQR vous facilite la tâche.

Qu'est-ce qu'IronQR?

IronQR est une puissante bibliothèque de codes QR en C# développée pour créer un lecteur et un rédacteur de codes QR performants pour les développeurs .NET. IronQR est conçu à la fois pour la génération et la numérisation de codes QR, et il prend en charge la lecture à partir d'une variété de formats d'image, ce qui le rend idéal pour une utilisation dans des applications de bureau, web ou serveur. Grâce à cette bibliothèque, vous pouvez créer des outils de lecture de codes QR précis afin d'automatiser l'ensemble du processus de reconnaissance et de lecture des codes QR.

Caractéristiques principales

  • Lisez et générez des codes QR en toute simplicité.
  • Prise en charge des formats d'image JPEG, PNG, BMP et autres.
  • Performances à grande vitesse et détection précise pour une extraction aisée des données des codes QR.
  • Fonctionne sur l'ensemble des projets .NET Framework, .NET Core, .NET Standard (2.0+) et .NET 6/7+.
  • La prise en charge multiplateforme vous permet de travailler dans l'environnement d'application et le système d'exploitation de votre choix, qu'il s'agisse de Windows, de Linux ou de tout autre environnement pris en charge.

Unlike open-source alternatives, IronQR focuses on enterprise-grade stability, commercial licensing, and professional support—making it an excellent fit for business-critical applications.

Installation d'IronQR dans votre projet C

Avant de commencer à scanner des codes QR, voyons comment configurer IronQR for .NET dans votre application .NET.

Installation via NuGet

Vous pouvez installer IronQR directement à partir de la console du gestionnaire de paquets NuGet :

Install-Package IronQR
Install-Package IronQR
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronQR
$vbLabelText   $csharpLabel

Vous pouvez également utiliser l'interface graphique NuGet dans Visual Studio en recherchant IronQR, puis en cliquant sur "Installer" :

Comment lire un QR à partir d'une image en C# : Figure 2 - Écran du gestionnaire de paquets NuGet d'IronQR

Ajouter des espaces de noms et configuration de base

Une fois installé, incluez l'espace de noms suivant dans votre fichier C# :

using IronSoftware.Drawing;
using IronQR;
using IronSoftware.Drawing;
using IronQR;
Imports IronSoftware.Drawing
Imports IronQR
$vbLabelText   $csharpLabel

Note: IronSoftware.Drawing est utilisé pour gérer les formats d'image de manière multiplateforme.

Lire un code QR à partir d'une image

Voyons maintenant comment lire un code QR à partir d'un fichier à l'aide d'IronQR.

Formats d'image pris en charge

IronQR prend en charge plusieurs types de formats d'image, notamment :

  • PNG
  • JPG/JPEG
  • BMP
  • GIF
  • TIFF

Cette flexibilité vous permet de travailler avec pratiquement n'importe quelle source d'image, qu'il s'agisse d'instantanés d'appareil photo ou de documents numérisés.

Exemple de code de base

Voyons de plus près comment vous pouvez utiliser cette bibliothèque pour décoder facilement les codes QR. Voici un exemple minimal qui lit un code QR unique avec la valeur texte "Hello World !" à partir d'un fichier image, en utilisant la classe Bitmap et un flux de fichiers pour charger l'image :

using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image using a file stream
        using var stream = File.OpenRead("sample-qr.png");
        var bitmapImage = AnyBitmap.FromStream(stream);
        QrImageInput qrImageInput = new QrImageInput(bitmapImage );
        // Read the QR code
        QrReader qrReader = new QrReader();
        try
        {
     // Use the QR read method to read the values within your QR code(s)
            IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
            // Output the decoded value
            foreach (var result in results)
            {
                Console.WriteLine("QR Code Value: " + result.Value);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error reading QR code: " + ex.Message);
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image using a file stream
        using var stream = File.OpenRead("sample-qr.png");
        var bitmapImage = AnyBitmap.FromStream(stream);
        QrImageInput qrImageInput = new QrImageInput(bitmapImage );
        // Read the QR code
        QrReader qrReader = new QrReader();
        try
        {
     // Use the QR read method to read the values within your QR code(s)
            IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
            // Output the decoded value
            foreach (var result in results)
            {
                Console.WriteLine("QR Code Value: " + result.Value);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error reading QR code: " + ex.Message);
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Friend Class Program
	Shared Sub Main()
		' Load the image using a file stream
		Dim stream = File.OpenRead("sample-qr.png")
		Dim bitmapImage = AnyBitmap.FromStream(stream)
		Dim qrImageInput As New QrImageInput(bitmapImage)
		' Read the QR code
		Dim qrReader As New QrReader()
		Try
	 ' Use the QR read method to read the values within your QR code(s)
			Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
			' Output the decoded value
			For Each result In results
				Console.WriteLine("QR Code Value: " & result.Value)
			Next result
		Catch ex As Exception
			Console.WriteLine("Error reading QR code: " & ex.Message)
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie console

Comment lire un QR à partir d'une image en C# : Figure 3 - Valeur du code QR sortie de la console

Ce code charge l'image du code QR, lit le premier code QR détecté et imprime le contenu décodé. Simple et efficace. À partir d'ici, vous pouvez enregistrer les valeurs des codes QR pour une utilisation ultérieure.

Gestion de plusieurs QR Codes

Si votre image contient plusieurs codes QR (par exemple, une feuille d'étiquettes de produits), vous pouvez tous les extraire. Pour cet exemple, nous ferons passer l'image du code QR suivant par notre programme :

Comment lire un QR à partir d'une image en C# : Figure 4 - Image avec plusieurs QR Codes

using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image from file
        var inputImage = AnyBitmap.FromFile("SampleCodes.png");
        QrImageInput qrImageInput = new QrImageInput(inputImage);
        // Read the QR code
        QrReader qrReader = new QrReader();
        IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
        // Output the decoded value
        foreach (var result in results)
        {
            Console.WriteLine("QR Code Value: " + result.Value);
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System;
class Program
{
    static void Main()
    {
        // Load the image from file
        var inputImage = AnyBitmap.FromFile("SampleCodes.png");
        QrImageInput qrImageInput = new QrImageInput(inputImage);
        // Read the QR code
        QrReader qrReader = new QrReader();
        IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
        // Output the decoded value
        foreach (var result in results)
        {
            Console.WriteLine("QR Code Value: " + result.Value);
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Friend Class Program
	Shared Sub Main()
		' Load the image from file
		Dim inputImage = AnyBitmap.FromFile("SampleCodes.png")
		Dim qrImageInput As New QrImageInput(inputImage)
		' Read the QR code
		Dim qrReader As New QrReader()
		Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
		' Output the decoded value
		For Each result In results
			Console.WriteLine("QR Code Value: " & result.Value)
		Next result
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie

Comment lire un code QR à partir d'une image en C# : Figure 5 - Sortie de la valeur du code QR

Cas d'utilisation courants pour la lecture des codes QR

Voici quelques scénarios concrets dans lesquels la lecture de codes QR à partir d'images s'avère précieuse :

  • Gestion des stocks et des actifs : Automatisez l'identification des articles en scannant les codes QR des images d'emballages.
  • Authentification à deux facteurs (2FA) : Analyser les codes QR des écrans de configuration de l'authentification à deux facteurs pour faciliter la configuration sécurisée.
  • Intégration des applications mobiles : Lancez des URL mobiles ou des liens profonds spécifiques à une application en scannant des captures d'écran QR partagées.
  • Billetterie événementielle : Validez les codes QR des billets envoyés par courriel ou affichés sur un écran.
  • Payment Gateways : Extraction des données de paiement intégrées dans les codes QR pour les applications fintech.

Dans tous ces cas d'utilisation, une reconnaissance rapide et précise est essentielle, ce qu'IronQR gère avec facilité.

Conseils de dépannage

Si vous rencontrez des difficultés pour lire les codes QR, tenez compte des éléments suivants :

Mauvaise qualité d'image

Les images floues ou à faible résolution peuvent rendre difficile la détection d'un code QR. Dans la mesure du possible, utilisez des intrants de haute qualité.

Code QR non détecté

Veillez à ce que l'image ne soit pas trop sombre, qu'elle présente un fort contraste et que le code QR ne soit pas masqué. Essayez de recadrer l'image pour vous concentrer sur la région QR.

Gestion des exceptions

Enveloppez toujours votre logique de lecture de QR dans des blocs try-catch pour gérer de manière élégante les fichiers corrompus ou les formats inattendus :

try
{
    IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
    // Output the decoded value
    foreach (var result in results)
    {
        Console.WriteLine("QR Code Value: " + result.Value);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error reading QR code: " + ex.Message);
}
try
{
    IEnumerable<QrResult> results = qrReader.Read(qrImageInput);
    // Output the decoded value
    foreach (var result in results)
    {
        Console.WriteLine("QR Code Value: " + result.Value);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error reading QR code: " + ex.Message);
}
Try
	Dim results As IEnumerable(Of QrResult) = qrReader.Read(qrImageInput)
	' Output the decoded value
	For Each result In results
		Console.WriteLine("QR Code Value: " & result.Value)
	Next result
Catch ex As Exception
	Console.WriteLine("Error reading QR code: " & ex.Message)
End Try
$vbLabelText   $csharpLabel

Pensées finales

Lire des codes QR à partir d'images en C# ne doit pas être difficile. Avec IronQR, vous pouvez intégrer la lecture de codes QR dans vos applications .NET avec seulement quelques lignes de code. Sa simplicité, sa compatibilité multiplateforme et ses excellentes performances en font un outil de choix pour les développeurs qui travaillent sur des systèmes modernes dotés de QR.

Si vous souhaitez étendre cette fonctionnalité, n'hésitez pas à explorer :

Installez la version d'essai gratuite d'IronQR pour commencer dès aujourd'hui et découvrir comment cette bibliothèque peut élever vos tâches liées aux codes QR.

Questions Fréquemment Posées

Comment puis-je lire des codes QR à partir d'images en C#?

Vous pouvez utiliser IronQR pour lire des codes QR à partir d'images en C#. IronQR fournit des méthodes pour scanner et extraire les données des codes QR à partir de divers formats d'image tels que PNG, JPG, et TIFF avec un code minimal.

Quelles étapes sont nécessaires pour configurer IronQR dans un projet .NET?

Pour configurer IronQR dans un projet .NET, utilisez la console du gestionnaire de paquets NuGet avec la commande Install-Package IronQR, ou trouvez IronQR dans l'interface utilisateur du gestionnaire de paquets NuGet de Visual Studio et cliquez sur 'Installer'.

Comment IronQR peut-il aider à lire des codes QR dans des images de basse qualité?

IronQR est conçu pour gérer la lecture de codes QR à partir d'images de qualité variable. Cependant, pour obtenir les meilleurs résultats, assurez-vous que l'image a un bon contraste et une mise au point sur la région du code QR. Si la détection échoue, essayez d'améliorer la qualité de l'image ou de la recadrer.

IronQR peut-il lire plusieurs codes QR à partir d'une seule image?

Oui, IronQR peut détecter et lire plusieurs codes QR à partir d'une seule image. Cela est utile pour traiter des documents ou des étiquettes avec plusieurs codes QR.

Quels sont les cas d'utilisation communs pour la lecture de codes QR dans des applications .NET?

Les cas d'utilisation communs incluent la gestion des stocks, l'authentification à deux facteurs, les intégrations d'applications mobiles, la billetterie d'événements et les passerelles de paiement. IronQR facilite ces applications en fournissant des capacités de lecture de codes QR rapides et fiables.

{"15":"Comment IronQR garantit-il la compatibilit\u00e9 multiplateforme ?<\/S>"}

IronQR prend en charge .NET Framework, .NET Core, .NET Standard, et .NET 6/7+, offrant une compatibilité multiplateforme pour Windows, Linux, et d'autres environnements.

Que dois-je faire si IronQR ne parvient pas à lire un code QR?

Si IronQR ne parvient pas à lire un code QR, vérifiez la qualité de l'image pour la clarté et le contraste. Assurez-vous qu'il n'y a pas d'obstructions sur le code QR et envisagez de recadrer pour vous concentrer sur la zone du code QR. Si les problèmes persistent, vérifiez que le format du fichier est pris en charge.

Comment puis-je gérer les exceptions lors de l'utilisation de IronQR pour lire des codes QR?

Pour gérer les exceptions, encadrez votre code IronQR dans des blocs try-catch. Cette approche permet de gérer gracieusement les problèmes tels que les fichiers corrompus ou les formats non pris en charge.

Quels sont les avantages de l'utilisation de IronQR pour le traitement des codes QR?

IronQR offre des performances rapides, prend en charge plusieurs formats d'image, et fournit une stabilité de qualité professionnelle. Il est facile à intégrer dans diverses applications .NET, ce qui en fait un choix idéal pour les développeurs recherchant des solutions de traitement de codes QR efficaces.

Comment puis-je améliorer la précision de la détection des codes QR avec IronQR?

Améliorez la précision de la détection en utilisant des images de haute qualité avec un bon contraste et une bonne mise au point. Assurez-vous que les codes QR ne sont pas masqués et envisagez d'utiliser des techniques de prétraitement d'image si nécessaire.

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