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.
Configuration 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
Alternativement, utilisez l'interface graphique de NuGet dans Visual Studio en recherchant IronQR, et cliquez sur "Installer" :

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
Note : IronSoftware.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
Sortie 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 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 :

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
Sortie

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 des stocks et des actifs : Automatisez l'identification des articles en scannant les codes QR figurant sur les images des emballages.
- Authentification à deux facteurs (2FA) : analyser les codes QR des écrans de configuration 2FA pour faciliter une 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 de codes QR partagées.
- Billetterie événementielle : Valider les codes QR des billets envoyés par e-mail ou affichés sur un écran.
- Passerelles de paiement : extraire les données de paiement intégrées aux 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
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 :
- La génération de codes QR pour créer vos propres codes scannables.
- Intégration avec IronBarcode ou IronOCR pour des capacités de balayage encore plus larges. Prêt à commencer ?
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 Package Manager NuGet avec la commande Install-Package IronQR, ou trouvez IronQR dans l'interface utilisateur du Package Manager 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.




