Aspose.BarCode를 사용하여 스트림이나 메모리에서 QR 코드를 스캔하는 방법 .NET

Aspose.BarCode를 사용하여 스트림이나 메모리에서 QR 코드를 스캔하는 방법 .NET

이 기사에서는 .NET을 위한 Aspose.BarCode를 사용하여 흐름이나 메모리에서 직접 QR 코드를 스캔하는 방법을 설명합니다.이 접근법은 파일이 업로드되고, 메미리로 처리되거나, 네트워크를 통해 수신되는 클라우드, 웹 및 서버없는 응용 프로그램에 필수적입니다.

현실 세계 문제

현대 .NET 응용 프로그램은 종종 물리적 파일 대신 이미지 스트림으로 처리합니다. 개발자는 이러한 메모리 이미지에서 QR 코드를 읽을 수있는 방법이 필요합니다, 실시간, 스케일 가능한 처리.

솔루션 검토

Aspose.BarCode for .NET은 모든 QR 코드를 읽을 수 있습니다. Stream 또는 MemoryStream디스크에 절약하지 않고 이미지를 처리 할 수 있습니다.이것은 웹 서버, REST APIs 및 배포 된 클라우드 앱에 대한 빠른 작업 흐름을 해제합니다.

원칙

시작하기 전에, 당신이 가지고 있는지 확인:

  • 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 이미지를 A로 업로드합니다. FileStream, MemoryStream, 또는 어떤 메모리 출처에서 (예를 들어, HTTP 업로드, 클라우드 블로브).

using (FileStream fs = File.OpenRead("qr_sample.png"))
{
    // Ready for scanning
}

3단계: 스트림을 위한 BarCodeReader 만들기

흐름을 통과하여 BarCodeReader 그리고 구체적으로 DecodeType.QR:

using (BarCodeReader reader = new BarCodeReader(fs, DecodeType.QR))
{
    // Ready for decoding
}

단계 4: 스캔 프로세스를 실행

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

단계 5 : 프로세스 및 사용 출력

응용 프로그램에서 암호화 된 QR 데이터를 사용하십시오 (예 : 인증, 검색, 메타 데이터 추출).

단계 6 : 실수 처리 실행

try
{
    using (FileStream fs = File.OpenRead("qr_sample.png"))
    using (BarCodeReader reader = new BarCodeReader(fs, 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;
using System.IO;

class Program
{
    static void Main()
    {
        try
        {
            using (FileStream fs = File.OpenRead("qr_sample.png"))
            using (BarCodeReader reader = new BarCodeReader(fs, 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}");
        }
    }
}

사례 및 응용 프로그램 사용

  • Cloud Workflows: 웹 또는 모바일을 통해 업로드된 이미지에서 QR 코드를 처리합니다.
  • REST APIs: 바이트 라일 또는 스트림으로 게시된 QR 이미지를 해독
  • Serverless & Microservices: 파일 시스템 액세스 또는 디스크 글쓰기가 필요하지 않습니다.

일반적인 도전과 해결책

도전 1 : 큰 이미지가 메모리 문제를 일으킨다. 해결책 : 효율적으로 스트림을 사용하십시오; 스캔하기 전에 이미지 크기를 제한하거나 스케일을 낮추십시오.

도전 2 : 흐름은 이미 닫혀있다 / 사용할 수 있습니다해결책 : 흐름이 스캔 기간 동안 열려 있는지 확인하십시오.

도전 3 : 찾을 수 없는 네트워크 스트림해결책 : 복사하기 A MemoryStream 필요한 경우

성과 고려 사항

  • High-throughput를 위한 스트림과 버퍼를 다시 사용합니다.
  • 읽기 및 스트림 개체를 신속하게 사용할 수 있습니다.
  • 가능한 경우 일시적인 파일을 저장하지 마십시오.

모범 사례

  • 항상 흐름과 스캔으로 예외를 처리합니다.
  • 모든 디코딩 결과를 확인합니다.
  • 웹/클라우드 작업 흐름에서 경쟁을 최적화
  • 다양한 스트림 출처 (디스크, 네트워크, 메모리)를 사용하여 테스트

고급 시나리오

1) 바이트 아레이에서 QR 코드를 스캔

byte[] imageBytes = File.ReadAllBytes("qr_sample.png");
using (MemoryStream ms = new MemoryStream(imageBytes))
using (BarCodeReader reader = new BarCodeReader(ms, DecodeType.QR))
{
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        Console.WriteLine(result.CodeText);
    }
}

HTTP 업로드에서 스캔 (ASP.NET 예제)

// In an ASP.NET Controller:
[HttpPost]
public IActionResult ScanQr(IFormFile uploadedImage)
{
    using (var ms = new MemoryStream())
    {
        uploadedImage.CopyTo(ms);
        ms.Position = 0;
        using (BarCodeReader reader = new BarCodeReader(ms, DecodeType.QR))
        {
            foreach (BarCodeResult result in reader.ReadBarCodes())
            {
                // Process result.CodeText
            }
        }
    }
    return Ok();
}

결론

Aspose.BarCode for .NET은 메모리 스트림에서 QR 코드를 직접 스캔하는 것이 쉽습니다 - 파일 I/O없이 클라우드, 웹 및 마이크로 서비스 작업 흐름에 완벽합니다.

자세한 내용은 Aspose.BarCode를 참조하십시오. API 참조 .

 한국어