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 참조 .