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 partout—sur les emballages des produits, les billets d'événement, les menus, et même les cartes de visite. En tant que développeur .NET, être capable de lire rapidement et de manière fiable les codes QR depuis des images peut ouvrir la porte à de puissantes fonctionnalités d'automatisation et d'interaction utilisateur. Dans ce guide, nous vous guiderons à travers l'utilisation d'IronQR, une bibliothèque de codes QR haute performance conçue 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 de l'inventaire, intégriez une authentification à deux facteurs, ou simplement décryptiez des URL à partir de captures d'écran, IronQR facilite la tâche.

Qu'est-ce qu'IronQR ?

IronQR est une puissante bibliothèque C# de codes QR développée pour créer un lecteur et un créateur de codes QR puissant pour les développeurs .NET. IronQR est conçu pour la génération et le balayage de codes QR, et il prend en charge la lecture de divers 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 pour automatiser tout le processus de reconnaissance et de lecture des codes QR.

Fonctionnalités clés

  • Lire et générer des codes QR facilement.
  • Prise en charge des formats d'image JPEG, PNG, BMP, et autres.
  • Performance rapide et détection précise pour une extraction facile des données des codes QR.
  • Fonctionne à travers les projets .NET Framework, .NET Core, .NET Standard (2.0+), et .NET 6/7+.
  • Offre un support multiplateforme, donc vous pouvez travailler dans votre environnement d'application et système d'exploitation préférés, que ce soit Windows, Linux, ou tout autre environnement pris en charge.

Contrairement aux alternatives open-source, IronQR se concentre sur la stabilité de qualité entreprise, la licence commerciale, et le support professionnel—ce qui en fait un excellent choix pour les applications critiques pour l'entreprise.

Installation d'IronQR dans votre projet C

Avant de pouvoir commencer à balayer des codes QR, voyons comment installer IronQR dans votre application .NET.

Installez via NuGet

Vous pouvez installer IronQR directement depuis la console du gestionnaire de packages NuGet :

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

Alternativement, utilisez l'interface graphique de NuGet dans Visual Studio en recherchant IronQR, et cliquez sur "Installer" :

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

Ajouter les 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 : Iron Software.Drawing est utilisé pour la gestion des formats d'image de manière multiplateforme.

Lire un code QR à partir d'une image

Plongeons dans la façon de lire réellement un code QR à partir d'un fichier en utilisant IronQR.

Formats d'Images Pris en Charge

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

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

Cette flexibilité vous permet de travailler avec pratiquement n'importe quelle source d'image, des clichés de caméra aux documents numérisés.

Exemple de code de base

Regardons de plus près comment vous pouvez utiliser cette bibliothèque pour décoder les codes QR facilement. Voici un exemple minimal qui lit un seul code QR avec la valeur textuelle "Hello World!" depuis un fichier image, en utilisant la classe Bitmap et un flux de fichier 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 code QR à partir d'une image en C#: Figure 3 - Sortie console de valeur de code QR

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 de là, vous pouvez enregistrer les valeurs des codes QR pour une utilisation ultérieure.

Gestion de plusieurs codes QR

Si votre image contient plusieurs codes QR (par exemple, une feuille d'étiquettes de produit), vous pouvez tous les extraire. Pour cet exemple, nous exécuterons l'image de code QR suivante dans notre programme :

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

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

Output

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

Cas d'utilisation courants pour le balayage de codes QR

Voici quelques scénarios réels où lire les codes QR depuis des images devient précieux :

  • Gestion d'inventaire et d'actifs : Automatisez l'identification des articles en scannant les codes QR à partir d'images de paquets.
  • Authentification à deux facteurs (2FA) : Analyser des codes QR depuis les écrans de configuration de 2FA pour assister dans la configuration sécurisée.
  • Intégration d'applications mobiles : Lancez des URL mobiles ou des liens profonds spécifiques à l'application en scannant des captures d'écran QR partagées.
  • Billeterie événementielle : Validez les codes QR des billets envoyés par e-mail ou affichés sur un écran.
  • Passerelles de paiement : Extraire 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—quelque chose qu'IronQR gère avec aisance.

Conseils de dépannage

Si vous rencontrez des problèmes pour lire des codes QR, envisagez ce qui suit :

Mauvaise qualité d'image

Les images floues ou à faible résolution peuvent rendre difficile la détection d'un code QR. Utilisez des entrées de haute qualité lorsque possible.

Code QR non détecté

Assurez-vous que l'image n'est pas trop sombre, qu'elle a un fort contraste, et que le code QR n'est pas obscurci. Essayez de recadrer l'image pour vous concentrer sur la région QR.

Gestion des exceptions

Emballez toujours votre logique de lecture des QR dans des blocs try-catch pour gérer gracieusement 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

Conclusion

Lire des codes QR à partir d'images en C# n'a pas à être difficile. Avec IronQR, vous pouvez intégrer le balayage 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 incontournable pour les développeurs travaillant sur des systèmes modernes compatibles avec les QR.

Si vous cherchez à étendre cette fonctionnalité, envisagez d'explorer :

Installez la version d'essai gratuite d'IronQR pour commencer dès aujourd'hui, et découvrez comment cette bibliothèque peut élever vos tâches de 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 à la lecture de QR codes 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.

Comment IronQR garantit-il la compatibilit\u00e9 multiplateforme ?

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