Comment scanner plusieurs codes QR dans une seule image en utilisant Aspose.BarCode pour .NET
Cet article montre comment scaner et décoder plusieurs codes QR présents dans une seule image en utilisant Aspose.BarCode pour .NET. La bibliothèque permet la détection et l’extraction de lots, ce qui facilite le traitement des formulaires, des billets, les étiquettes d’inventaire, ou autres documents avec plusieurs code QR à la fois.
Problème du monde réel
Les organisations reçoivent souvent ou génèrent des images (formules scanées, étiquettes de masse, passes d’événements, etc.) contenant plusieurs codes QR. La scannerie manuelle de chaque code est lente et impractique. Les développeurs ont besoin d’une manière rapide et fiable de traiter tous les code QR de ces images en une seule étape automatisée.
Vue de la solution
Aspose.BarCode pour .NET soutient la reconnaissance QR : il peut scanner et décoder tous les codes QR dans un seul fichier image ou flux. Le résultat est une collection d’objets décodés, permettant l’automatisation de document à haute vitesse, la validation des billets, ou les fluxos de travail de collecte de données.
Principaux
Avant de commencer, assurez-vous que vous avez :
- Visual Studio 2019 ou ultérieur
- .NET 6.0 ou ultérieur (ou .Net Framework 4.6.2+)
- Aspose.BarCode pour .NET installé via NuGet
- Les connaissances de base de C#
PM> Install-Package Aspose.BarCode
La mise en œuvre étape par étape
Étape 1 : Installer et configurer Aspose.BarCode
Ajouter le paquet Aspose.BarCode et inclure l’espace de nom requis:
using Aspose.BarCode.BarCodeRecognition;
Étape 2 : Préparez vos données d’entrée
Préparez ou obtenez un fichier d’image contenant plusieurs codes QR (par exemple, “multi_qr_sample.png”).
string imagePath = "multi_qr_sample.png";
Étape 3 : Configurez les options de reconnaissance de code QR
Configurez le lecteur de code bar pour la scanation QR. Il n’y a pas besoin d’options supplémentaires de batch: la lectrice détecte automatiquement tous les codes QR présents.
BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);
Étape 4 : Exécuter le processus de scan QR Batch
Téléchargez tous les codes QR reconnus :
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
Étape 5 : Traiter les outils et la post-traitement
Enregistrer, valider ou traiter les données QR décodées telles que demandées par votre application (entrée de base de données, validation d’événements, etc.).
Étape 6 : Traitement de l’erreur
try
{
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Exemple complet
using Aspose.BarCode.BarCodeRecognition;
using System;
class Program
{
static void Main()
{
string imagePath = "multi_qr_sample.png";
try
{
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
Utiliser les cas et les applications
- Bulk Ticket ou Pass Scanning: Systèmes de check-in sur les événements ou les stations de transit
- Batch Document Automation: Extrait de métadonnées des formulaires ou des pages scannées
- Inventory and Asset Management: Scanner plusieurs codes QR sur une seule étiquette ou un crate
Défis communs et solutions
Défi 1 : les codes QR sont trop prochesLa solution : Utilisez des zones silencieuses claires autour de chaque code dans le design d’impression / layout.
Challenge 2: Certains codes QR ne sont pas détectésLa solution : Augmentez la résolution de l’image, ou préprocédez l’image (par exemple, la limite) pour améliorer la clarté.
Défi 3 : les codes de barre indésirables sont présentsLa solution : Limitez le décodage strictement à QR en utilisant DecodeType.QR
uniquement .
Considérations de performance
- Utilisez des courants ou des buffers de mémoire pour les applications à haute puissance
- Disposer d’objets de lecture pour conserver les ressources
- Ajuster la taille de l’image pour le meilleur équilibre de vitesse et d’exactitude
Migliori pratiche
- Valider chaque résultat décodé avant d’utiliser
- Résultats d’enregistrement pour la traçabilité et l’audit
- Test batch scan avec une variété d’images de échantillons
- Assurer une séparation claire des codes QR dans le layout du document
Scénarios avancés
Batch scanner des codes QR à partir d’un MemoryStream
using (FileStream fs = File.OpenRead(imagePath))
using (BarCodeReader reader = new BarCodeReader(fs, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine(result.CodeText);
}
}
Résultats du processus pour l’entrée de la base de données
List<string> qrData = new List<string>();
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
qrData.Add(result.CodeText);
}
}
// Insert qrData into database as needed
Conclusion
Avec Aspose.BarCode pour .NET, vous pouvez scanner efficacement tous les codes QR présents dans une seule image, en permettant l’automatisation de volume élevé dans la gestion d’événements, le suivi des actifs ou les flux de travail des documents.
Pour plus de détails, voir Aspose.BarCode Référence API .