Как сканировать множество QR-кодов в одном изображении с помощью Aspose.BarCode для .NET

Как сканировать множество QR-кодов в одном изображении с помощью Aspose.BarCode для .NET

Эта статья показывает, как сканировать и декодировать несколько QR-кодов, присутствующих в одном изображении, с помощью Aspose.BarCode для .NET. Библиотека позволяет обнаружить и выводить комплекты, что облегчает обработку форм, билетов, обозначений или других документов с несколькими QR кодами одновременно.

Реальные мировые проблемы

Организации часто получают или генерируют изображения (сканированные формы, массовые этикетки, прохождения событий и т. д.), содержащие несколько QR кодов. Ручное сканирование каждого кода медленно и непрактично. Разработчикам нужен быстрый, надежный способ обработки всех QR-кодов из таких изображений в одном автоматизированном шаге.

Решение обзор

Aspose.BarCode для .NET поддерживает восприятие QR: он может сканировать и декодировать все QR-коды в одном изобразительном файле или потоке. Результатом является сбор декодированных объектов, позволяющих высокопропускную автоматизацию документов, валидацию билетов или рабочие потоки сбора данных.

Предупреждения

Прежде чем начать, убедитесь, что у вас есть:

  • Visual Studio 2019 или позднее
  • .NET 6.0 или более поздний (или .Net Framework 4.6.2+)
  • Aspose.BarCode для .NET установлен через NuGet
  • Основное знание C#
PM> Install-Package Aspose.BarCode

Step-by-Step реализация

Шаг 1: Инсталляция и настройка Aspose.BarCode

Добавьте пакет Aspose.BarCode и включайте необходимое название пространства:

using Aspose.BarCode.BarCodeRecognition;

Шаг 2: Подготовьте свои входные данные

Подготовить или получить файл изображения, содержащий несколько QR-кодов (например, «multi_qr_sample.png»).

string imagePath = "multi_qr_sample.png";

Шаг 3: Настройка опций QR Code Batch Recognition

Для сканирования QR нет дополнительных опций: читатель автоматически обнаруживает все существующие QR коды.

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

Шаг 4: Выполните процессы сканирования Batch QR

Итер через все признанные QR-коды:

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

Шаг 5: Управление выходом и после обработки

Сохранение, валидация или обработка декодированных QR-данных, как требуется Вашей заявкой (вход в базу данных, подтверждение событий и т.д.).

Шаг 6: Управление ошибками

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

Полный пример

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

Используйте случаи и приложения

  • Bulk Ticket или Pass Scanning: Системы входа на мероприятиях или транзитных станциях
  • Batch Document Automation: Экстракт метаданных из форм или сканированных страниц
  • Инвентаризация и управление активами: Сканирование нескольких QR-кодов на одной этикетке или крате

Общие вызовы и решения

Проблема 1: QR-коды слишком близко друг к другуРешение → Используйте четкие тихие зоны вокруг каждого кода в дизайне печати/расложения.

Проблема 2: Некоторые QR-коды не обнаруженыРешение → Увеличьте резолюцию изображения или предварительно обрабатывайте изображение (например, пределы) для улучшения четкости.

Проблема 3: Нежелательные баркоды присутствуютРешение → Ограничить расшифровку строго к QR, используя DecodeType.QR И только .

Рассмотрим производительность

  • Используйте потоки или буферы памяти для высокоскоростных приложений
  • Наличие предметов читателя для сохранения ресурсов
  • Регулирование размера изображения для наилучшего баланса скорости и точности

Лучшие практики

  • Проверьте каждый декодированный результат перед использованием
  • Результаты записи для отслеживаемости и аудита
  • Скенирование тестового комплекта с различными образцами
  • Обеспечить четкое разделение QR-кодов в оформлении документа

Развитые сценарии

Сканирование QR кодов с 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);
    }
}

Результаты процесса для ввода в базу данных

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

Заключение

С помощью Aspose.BarCode для .NET вы можете эффективно сканировать все QR-коды, присутствующие в одном изображении, способствуя автоматизации высокого объема в управлении событиями, отслеживании активов или рабочих потоков документов.

Для получения дополнительной информации см. Aspose.BarCode Огневая ссылка .

 Русский