Как да сканирате множество 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
Стъпка по стъпка изпълнение
Стъпка 1: Инсталирайте и конфигурирайте Aspose.BarCode
Добавете пакета Aspose.BarCode и включете необходимия именен пространство:
using Aspose.BarCode.BarCodeRecognition;
Стъпка 2: Подгответе данните си за вход
Подгответе или получите файл с изображение, съдържащ няколко QR кода (например, “multi_qr_sample.png”).
string imagePath = "multi_qr_sample.png";
Стъпка 3: Конфигуриране на опциите за разпознаване на QR код
Не се изискват допълнителни опции за партида: читателят автоматично открива всички съществуващи QR кодове.
BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);
Стъпка 4: Извършете процеса на бач 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}");
}
}
}
Използване на случаи и приложения
- Булк Билет или Пас Скениране: Системи за влизане при събития или транзитни станции
- 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 Референт на API .