Come scansionare molti codici QR in una singola immagine utilizzando Aspose.BarCode per .NET

Come scansionare molti codici QR in una singola immagine utilizzando Aspose.BarCode per .NET

Questo articolo dimostra come scansionare e decodificare più codici QR presenti in una singola immagine utilizzando Aspose.BarCode per .NET. La biblioteca consente la rilevazione e l’estrazione di batch, rendendo facile il trattamento di moduli, biglietti, etichette dell’inventario o altri documenti con più codice QR contemporaneamente.

Il problema del mondo reale

Le organizzazioni spesso ricevono o generano immagini (formule scansionate, etichette di massa, passaggi di eventi, ecc.) che contengono diversi codici QR. La scansione manuale di ciascun codice è lenta e imprattica. Gli sviluppatori hanno bisogno di un modo veloce e affidabile per elaborare tutti i codichi QR di tali immagini in un solo passo automatizzato.

Soluzione Overview

Aspose.BarCode per .NET supporta il riconoscimento QR di batch: può scansionare e decodificare tutti i codici QR all’interno di un singolo file immagine o flusso. Il risultato è una raccolta di oggetti decoderati, che consente l’automazione di documenti ad alta velocità, la validazione del biglietto, o i flussi di lavoro di collezione dei dati.

Prerequisiti

Prima di iniziare, assicurati di avere:

  • Visual Studio 2019 o successivo
  • .NET 6.0 o successivo (o .Net Framework 4.6.2+)
  • Aspose.BarCode per .NET installato tramite NuGet
  • Conoscenza di base di C#
PM> Install-Package Aspose.BarCode

Implementazione passo dopo passo

Passo 1: Installare e configurare Aspose.BarCode

Aggiungi il pacchetto Aspose.BarCode e includi lo spazio di nome richiesto:

using Aspose.BarCode.BarCodeRecognition;

Passo 2: Prepara i tuoi dati di input

Preparare o ottenere un file immagine contenente più codici QR (ad esempio, “multi_qr_sample.png”).

string imagePath = "multi_qr_sample.png";

Passo 3: Configurare le opzioni di riconoscimento del codice QR

Non sono necessarie ulteriori opzioni di scansione: il lettore rileva automaticamente tutti i codici QR presenti.

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

Passo 4: Eseguire il processo di scansione QR Batch

Iterate attraverso tutti i codici QR riconosciuti:

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

Passo 5: Gestire l’output e il post-processing

Conservare, valutare o elaborare i dati QR decoditi come richiesto dalla tua applicazione (entrata in database, validazione degli eventi, ecc.).

Passo 6: Implementazione di errori di gestione

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

Esempio completo

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

Utilizzare casi e applicazioni

  • Bulk Ticket o Pass Scansione: Sistemi di check-in in eventi o stazioni di transito
  • Batch Document Automation: Estrazione dei metadati dai moduli o dalle pagine scansionate
  • Inventory and Asset Management: Scansione di più codici QR su un singolo etichetta o crate

Sfide e soluzioni comuni

Divisione 1: i codici QR sono troppo viciniLa soluzione: Utilizzare zone silenziose chiare intorno a ciascun codice nel disegno di stampa/layout.

Dio 2: Alcuni codici QR non sono stati rilevatiLa soluzione: Aumentare la risoluzione dell’immagine, o pre-processare l’ immagine (ad esempio, la soglia) per migliorare il livello di chiarezza.

Divisione 3: i codici a barre indesiderati sono presentiLa soluzione: Limitare la decodifica rigorosamente a QR utilizzando DecodeType.QR Ma solo.

Considerazioni di prestazioni

  • Utilizzare i flussi o i bufferi di memoria per applicazioni ad alta velocità
  • Dispone di oggetti di lettura per conservare le risorse
  • Adattare la dimensione dell’immagine per il miglior equilibrio di velocità e precisione

Migliori pratiche

  • Validare ogni risultato decodito prima di utilizzare
  • Risultati di registrazione per tracciabilità e audit
  • Test batch scansione con una varietà di immagini di campione
  • Assicurare una chiara separazione dei codici QR nel layout del documento

Scenari avanzati

Scansione dei codici QR da 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);
    }
}

Risultati del processo per l’ingresso in database

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

conclusione

Con Aspose.BarCode per .NET, è possibile scansionare in modo efficiente tutti i codici QR presenti in una singola immagine, potenziando l’automazione ad alto volume nella gestione degli eventi, nel tracciamento degli attivi o nei flussi di lavoro dei documenti.

Per ulteriori dettagli, vedere Aspose.BarCode Il riferimento di API .

 Italiano