Com escanejar múltiples codis QR en una imatge única utilitzant Aspose.BarCode per .NET

Com escanejar múltiples codis QR en una imatge única utilitzant Aspose.BarCode per .NET

Aquest article demostra com escanejar i decodificar múltiples codis QR presents en una sola imatge utilitzant Aspose.BarCode per a .NET. La biblioteca permet la detecció i l’extracció de batxons, fent que sigui fàcil processar formularis, bitllets, etiquetes d’inventari, o altres documents amb diversos codi QR alhora.

El problema del món real

Les organitzacions sovint reben o generen imatges (formes escanades, etiquetes en massa, passes d’esdeveniments, etc.) que contenen diversos codis QR. L’escanament manual de cada codi és lent i impractiu. Els desenvolupadors necessiten una manera ràpida i fiable de processar tots els codi QR de les imatges en un sol pas automatitzat.

Revisió de solucions

Aspose.BarCode per a .NET recolza el reconeixement QR: pot escanejar i decodificar tots els codis QR en un sol fitxer d’imatge o corrent. El resultat és una col·lecció d’objectes descodificats, que permet l’automatització de document de alta velocitat, la validació del bitllet o els fluxos de treball de recollida de dades.

Prerequisits

Abans de començar, assegureu-vos que teniu:

  • Visual Studio 2019 o posterior
  • .NET 6.0 o posterior (o .Net Framework 4.6.2+)
  • Aspose.BarCode per a .NET instal·lat a través de NuGet
  • Coneixement bàsic de C#
PM> Install-Package Aspose.BarCode

Implementació de pas a pas

Pas 1: Instal·la i configura Aspose.BarCode

Afegeix el paquet Aspose.BarCode i inclou l’espai de nom requerit:

using Aspose.BarCode.BarCodeRecognition;

Pas 2: Prepara les teves dades d’entrada

Preparar o obtenir un fitxer d’imatge que conté diversos codis QR (per exemple, “multi_qr_sample.png”).

string imagePath = "multi_qr_sample.png";

Pas 3: Configuració de les opcions de reconeixement del codi QR

Instal·la el lector de codi de bar per a l’escaneig QR. No es requereixen opcions de batxeta addicionals: la lectora detecta automàticament tots els codis QR present.

BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);

Pas 4: Executeu el procés d’escaneig QR de batxillerat

Iterat a través de tots els codis QR reconeguts:

foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.WriteLine($"Type: {result.CodeTypeName}");
    Console.WriteLine($"Text: {result.CodeText}");
}

Pas 5: Gestió de la sortida i post-processament

Emmagatzemar, validar o processar les dades QR decodificades tal com requereix la seva aplicació (entrada de base de dades, validació d’esdeveniments, etc.).

Pas 6: Implementar el tractament d’errors

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}");
        }
    }
} 

Utilitzar casos i aplicacions

  • Bulk Ticket o Pass Scanning: Sistemes de check-in en esdeveniments o estacions de trànsit
  • Batch Document Automation: Extreure metadades de formularis o pàgines escanejades
  • Inventor i gestió d’actius: Escaneix múltiples codis QR en una sola etiqueta o crata

Els reptes i les solucions comunes

Challenge 1: els codis QR estan massa a propLa solució: Utilitzeu zones silencioses clares al voltant de cada codi en el disseny d’impressió/layout.

Challenge 2: Alguns codis QR no es detectenLa solució: Augmentar la resolució de la imatge, o preprocessar l’imatge (per exemple, el límit) per millorar la claredat.

Cal·lel 3: Els codis de bar no desitjats estan presentsLa solució: Restricció de la decodificació estrictament a QR mitjançant l’ús DecodeType.QR Només

Consideracions de rendiment

  • Utilitzar fluxos o bufers de memòria per a aplicacions d’alta velocitat
  • Disposar d’objectes de lectura per conservar recursos
  • Ajustar la mida de la imatge per al millor equilibri de velocitat i precisió

Les millors pràctiques

  • Validar cada resultat decodificat abans d’utilitzar
  • Resultats de registre per a la traçabilitat i auditoria
  • Escàndol de batxillerat de prova amb una varietat d’imatges de mostra
  • Assegurar la separació clara dels codis QR en el disseny del document

Escenaris avançats

Batx Scan QR Codes des 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);
    }
}

Resultats del procés per a l’entrada de la base de dades

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

Conclusió

Amb Aspose.BarCode per a .NET, es pot escanejar eficientment tots els codis QR presents en una sola imatge, permetent l’automatització d’alt volum en la gestió dels esdeveniments, el seguiment dels actius o els fluxos de treball de documents.

Per a més detalls, vegeu l’Aspose.BarCode Referència API .

 Català