ASPOSE.BarCOD를 사용하여 단일 이미지에서 여러 QR 코드를 스캔하는 방법 .NET
이 기사에서는 Aspose.BarCode for .NET을 사용하여 하나의 이미지에 존재하는 여러 QR 코드를 스캔하고 해독하는 방법을 보여줍니다.이 도서관은 배치 탐지 및 추출을 허용하여 양식, 티켓, 인스턴트 라벨 또는 동시에 여러 QR 코드가있는 다른 문서를 쉽게 처리 할 수 있습니다.
현실 세계 문제
조직은 종종 여러 QR 코드를 포함하는 이미지를 수신하거나 생성합니다. 각 코드의 수동 스캔은 느리고 실용적입니다. 개발자는 하나의 자동화 된 단계에서 그러한 이미지에서 모든 QR 카드를 처리하는 빠르고 신뢰할 수있는 방법을 필요로 합니다.
솔루션 검토
Aspose.BarCode for .NET는 배치 QR 인식을 지원합니다 : 그것은 스캔하고 하나의 이미지 파일 또는 스트림 내에서 모든 QR 코드를 해독 할 수 있습니다.이 결과는 높은 속도 문서 자동화, 티켓 검증, 또는 데이터 수집 작업 흐름을 가능하게 해 녹화 된 개체의 수집입니다.
원칙
시작하기 전에, 당신이 가지고 있는지 확인:
- Visual Studio 2019 또는 이후
- .NET 6.0 또는 이후 (또는 .Net Framework 4.6.2+)
- NuGet를 통해 설치된 .NET을 위한 Aspose.BarCode
- 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 스캔을 위해 바코드 리더를 설정하십시오. 추가 배치 옵션이 필요하지 않습니다 : 레더는 모든 현재 QR 코드를 자동으로 감지합니다.
BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);
단계 4: 배치 QR 스캔 프로세스를 실행
모든 인식 QR 코드를 통해 Iterate :
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 티켓 또는 패스 스캔: 이벤트 또는 트랜지스터에서 체크인 시스템
- Batch Document Automation: 양식 또는 스캔 된 페이지에서 메타 데이터를 추출
- 재고 및 자산 관리: 단일 레이블 또는 크레이트에 여러 QR 코드를 스캔
일반적인 도전과 해결책
도전 1 : QR 코드가 너무 가까워집니다해결책 : 각 코드 주위에 명확한 조용한 영역을 인쇄 / 레이아웃 디자인에서 사용하십시오.
도전 2 : 일부 QR 코드가 발견되지 않았습니다해결책 : 이미지 해상도를 높이거나 이미지 (예 : 경계)를 사전 처리하여 명확성을 향상시킵니다.
도전 3 : 원치 않는 바코드가 존재합니다해결책 : QR를 사용하여 엄격하게 해독을 제한합니다. DecodeType.QR
오직
성과 고려 사항
- High-throughput 응용 프로그램을 위해 스트림이나 메모리 버퍼를 사용합니다.
- 자원을 보존하기 위해 읽기 물건을 갖추고 있습니다.
- 최상의 속도와 정확성의 균형을 위해 이미지 크기를 조정합니다.
모범 사례
- 사용하기 전에 모든 디코딩 결과를 확인합니다.
- 추적 및 감사를 위한 기록 결과
- 다양한 샘플 이미지로 테스트 배치 스캔
- 문서 배열에서 QR 코드의 명확한 분리를 보장합니다.
고급 시나리오
1) 메모리 스트림에서 QR 코드를 배치
using (FileStream fs = File.OpenRead(imagePath))
using (BarCodeReader reader = new BarCodeReader(fs, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine(result.CodeText);
}
}
2) 데이터베이스 입력에 대한 프로세스 결과
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 for .NET을 사용하면 단일 이미지에 존재하는 모든 QR 코드를 효율적으로 배치하여 이벤트 관리, 자산 추적 또는 문서 작업 흐름에서 높은 볼륨 자동화를 강화할 수 있습니다.
자세한 내용은 Aspose.BarCode를 참조하십시오. API 참조 .