Как сканировать множество 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 Огневая ссылка .