Jak skanować wiele kodów QR w jednym obrazie za pomocą Aspose.BarCode dla .NET

Jak skanować wiele kodów QR w jednym obrazie za pomocą Aspose.BarCode dla .NET

Ten artykuł pokazuje, jak skanować i decydować kilka kodów QR obecnych w jednym obrazie za pomocą Aspose.BarCode dla .NET. Biblioteka umożliwia wykrywanie i ekstrakcję pakietów, dzięki czemu łatwo jest przetwarzać formularze, bilety, etykiety zapasowe lub inne dokumenty z kilkoma kodami QR naraz.

Problem świata rzeczywistego

Organizacje często otrzymują lub generują obrazy (skanowane formularze, etykiety masowe, pasy wydarzeń itp.) zawierające kilka kodów QR. Manualne skanowanie każdego kodu jest powolne i niepraktyczne.

Przegląd rozwiązania

Aspose.BarCode dla .NET obsługuje rozpoznawanie QR: może skanować i decydować wszystkie kody QR w jednym pliku obrazu lub strumieniu. wynikiem jest zbiór dekodowanych obiektów, umożliwiając automatyzację dokumentów o wysokiej mocy, weryfikację biletu lub przepływów roboczych zbierania danych.

Warunki

Zanim zaczniesz, upewnij się, że masz:

  • Visual Studio 2019 lub później
  • .NET 6.0 lub nowszy (lub .Net Framework 4.6.2+)
  • Aspose.BarCode dla .NET zainstalowany za pośrednictwem NuGet
  • Podstawowe informacje o C#
PM> Install-Package Aspose.BarCode

Wdrażanie krok po kroku

Krok 1: Instalacja i konfiguracja Aspose.BarCode

Dodaj pakiet Aspose.BarCode i wprowadź wymagany obszar nazwy:

using Aspose.BarCode.BarCodeRecognition;

Krok 2: Przygotuj swoje dane wejściowe

Przygotuj lub uzyskaj plik obrazu zawierający kilka kodów QR (na przykład “multi_qr_sample.png”).

string imagePath = "multi_qr_sample.png";

Krok 3: Konfiguracja opcji rozpoznawania kodu QR

Nie potrzebne są dodatkowe opcje zestawu: czytelnik automatycznie wykrywa wszystkie obecne kody QR.

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

Krok 4: Wykonaj proces skanowania batch QR

Iterate przez wszystkie uznane kody QR:

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

Krok 5: Zarządzanie wydajnością i post-przetwarzaniem

Przechowywanie, weryfikacja lub przetwarzanie zdekodowanych danych QR zgodnie z wymaganiami aplikacji (wstęp do bazy danych, validacja wydarzeń itp.).

Krok 6: Wdrażanie błędów

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

Pełny przykład

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

Korzystanie z przypadków i aplikacji

  • Bulk Ticket or Pass Scanning: Systemy check-in na wydarzeniach lub stacjach tranzytowych
  • Batch Document Automation: Ekstrakcja metadanych z formularzy lub skanowanych stron
  • Inventory and Asset Management: Skanowanie wielu kodów QR na jednej etykietce lub krycie

Wspólne wyzwania i rozwiązania

Wyzwanie 1: kody QR są zbyt bliskoRozwiązanie : Użyj jasnych cichych stref wokół każdego kodu w projektowaniu drukowania/layout.

Wyzwanie 2: Niektóre kody QR nie są wykryteRozwiązanie : Zwiększ rozdzielczość obrazu lub uprzednio przetwarzaj obraz (np. granicę) w celu zwiększenia jasności.

Wyzwanie 3: Niepożądane kody barowe są obecneRozwiązanie : Ogranicz dekodowanie ściśle do QR przy użyciu DecodeType.QR Tylko .

uwzględnienie wydajności

  • Użyj strumieni lub buferów pamięci dla aplikacji o wysokiej mocy
  • Dostarczanie obiektów do czytania, aby zachować zasoby
  • Dostosuj rozmiar obrazu dla najlepszego równowagi prędkości i precyzji

Najlepsze praktyki

  • Validuj każdy decodowany wynik przed użyciem
  • Wyniki rejestracji dla śledzenia i audytu
  • Test batch skanowania z różnymi obrazami próbek
  • Zapewnienie wyraźnego oddzielenia kodów QR w układzie dokumentów

Zaawansowane scenariusze

Skanowanie kodów QR z 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);
    }
}

Wyniki procesu wstępu do bazy danych

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

konkluzja

Dzięki Aspose.BarCode dla .NET można efektywnie skanować wszystkie kody QR obecne w jednym obrazie, umożliwiając automatyzację o dużym objętości w zarządzaniu wydarzeniami, śledzeniu aktywów lub przepływach pracy dokumentów.

Aby uzyskać więcej szczegółów, zobacz Aspose.BarCode Referencje API .

 Polski