C#에서 스트림을 통해 바코드를 읽는 방법

How to Read Barcodes from Streams with C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode는 .NET 응용 프로그램에서 MemoryStream 객체로부터 바로 바코드를 읽어, 먼저 스트림을 디스크에 저장할 필요를 제거합니다. 이는 메모리에 저장된 이미지 및 PDF 문서 스트림에서 효율적인 바코드 처리를 가능하게 합니다.

MemoryStream는 메모리에 저장된 스트림에서 읽고 쓰는 .NET Framework 클래스입니다. 물리적 파일 없이 데이터를 조작하고 대신 메모리에 저장합니다. 이 접근 방식은 웹 애플리케이션, API 또는 바이트 배열 형태로 바코드 데이터를 수신하거나 임시 파일을 생성하지 않고 이미지를 처리해야 하는 시나리오에 적합합니다.

이미지 파일 또는 PDF 파일에서 바코드를 읽는 것 외에도 IronBarcode는 스트림에서도 바코드를 읽습니다. 라이브러리는 입력으로 PDF 문서 또는 이미지 스트림을 수락하고 바코드 읽기 결과를 출력합니다. 이 기능은 데이터베이스, 웹 업로드 또는 메모리에 캐시된 콘텐츠에서 데이터를 처리하는 데 적합합니다.

빠른 시작: 이미지 스트림에서 직접 바코드 읽기

IronBarcode로 이미지 스트림에서 바코드를 읽기 위해 디스크 쓰기 없이 두 줄의 코드를 사용하세요. 이 예제는 스트림 기반 바코드 읽기를 .NET에서 시연합니다.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/BarCode 설치하기

    PM > Install-Package BarCode
  2. 다음 코드 조각을 복사하여 실행하세요.

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronBarcode 사용 시작하기

    arrow pointer

이미지 스트림에서 바코드를 어떻게 읽나요?

파일 대신 메모리 스트림을 사용하는 이유는 무엇인가요?

메모리 스트림은 파일 기반 작업에 비해 몇 가지 장점을 제공합니다. 디스크 I/O 오버헤드를 제거하여 애플리케이션을 더 빠르게 만듭니다. 민감한 바코드 데이터가 디스크에 닿지 않으므로 보안이 향상됩니다. 디스크 접근이 제한되거나 비용이 비싼 클라우드 환경에 적합합니다. IronBarcode의 비동기 및 멀티스레딩 기능과 함께 사용하면 최대 성능을 위해 여러 스트림을 동시에 처리할 수 있습니다.

이 섹션에서는 IronBarcode를 사용하여 List<MemoryStream>에 저장된 이미지 스트림과 여러 이미지 스트림을 읽는 방법을 보여줍니다. 다음 코드에는 프로세스를 설명하는 주석이 포함되어 있습니다:

어떤 형태의 이미지 포맷이 지원되나요?

IronBarcode는 스트림에서 읽을 때 여러 이미지 포맷을 지원합니다: JPEG, PNG, GIF, TIFF, BMP, 그리고 SVG. 이 유연성 덕분에 소스 포맷에 관계없이 바코드 이미지를 처리할 수 있습니다. 최적 결과를 위해 바코드 리더 설정을 사용하여 읽기 프로세스를 미세 조정하세요.

using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;

List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());

var myBarcode = BarcodeReader.Read(list);

foreach (var barcode in myBarcode)
{
    Console.WriteLine(barcode.ToString());
}
$vbLabelText   $csharpLabel

여러 이미지 스트림을 어떻게 처리하나요?

위 코드는 IronBarcode가 BarcodeReader.Read() 메서드에서 단일 MemoryStream 객체 또는 MemoryStream 객체 목록을 수락하는 모습을 보여줍니다. 이 예시는 이미지 파일을 MemoryStream 객체로 변환하고 스트림에서 직접 바코드를 읽습니다.

IronBarcode는 여러 스트림을 처리할 때 읽기 속도 옵션을 효율적으로 사용합니다. 읽기 속도를 필요에 따라 조정하세요. 최대 정확도가 필요한 경우 또는 가장 빠른 처리 시간이 필요한 경우, 단일 스트림에서 여러 바코드 읽기 시, IronBarcode는 자동으로 모든 발견된 바코드를 감지하고 반환합니다.

스트림 내 불완전하거나 저품질 이미지에서 정확도를 향상시키려면 처리 전에 이미지 보정 필터를 적용하세요. 이것은 바코드 인식률을 크게 개선시킵니다.

PDF 문서 스트림에서 바코드를 어떻게 읽습니까?

왜 Read() 대신 ReadPdf()를 사용합니까?

ReadPdf() 메서드는 PDF 문서에 특화되어 최적화되며, 일반적인 Read() 메서드에 비해 이점을 제공합니다. 이는 멀티 페이지 문서, 벡터 그래픽 및 내장 이미지를 포함한 PDF 특정 기능을 효율적으로 처리합니다. 이 메서드는 모든 PDF 페이지를 자동으로 처리하며 다양한 PDF 포맷 및 압축 유형을 처리합니다. 전체 기능에 대해서는 바코드 읽기 튜토리얼을 참조하세요.

이 섹션에서는 IronBarcode를 사용하여 PDF 문서 파일을 MemoryStream 객체 또는 PDF 문서 스트림 목록으로 읽는 방법을 보여줍니다. 다음은 코드입니다:

여러 PDF 문서는 어떻게 합니까?

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;

MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;

var myBarcode = BarcodeReader.ReadPdf(document);

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
$vbLabelText   $csharpLabel

여러 PDF 스트림을 효율적으로 처리하는 방법은?

PDF 문서에서 MemoryStream 객체로 바코드를 읽는 것은 이미지에서 읽는 것과 비슷합니다. 주요 차이점은 메서드입니다: BarcodeReader.ReadPdf()는 PDF 문서를 특별히 다룹니다. 이 예제는 IronPDF를 사용하여 PDF 문서를 MemoryStream 객체로 변환합니다.

여러 PDF 문서의 경우, 하나의 문서 스트림으로 모든 PDF를 병합한 후 BarcodeReader.ReadPdf()에 공급합니다. 이 접근 방식은 각 PDF를 개별적으로 처리하는 것보다 더 효율적이며 메모리 오버헤드를 줄입니다. 문서에 맞는 최적화를 위해 PDF 전용 바코드 리더 설정을 구성하세요.

고급 시나리오의 경우 특정 페이지 또는 PDF 영역을 처리합니다. IronBarcode는 페이지 범위 및 페이지 내 바코드가 나타나는 영역을 지정할 수 있도록하여 처리 속도를 향상시킵니다. 대용량 문서의 처리 속도를 개선합니다.

프로덕션에서 스트림을 사용할 때, 메모리 누수를 방지하기 위해 MemoryStream 객체를 적절히 처분하세요. using 문은 자동 처분을 보장합니다:

using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
$vbLabelText   $csharpLabel

필요에 따라 라이브러리를 실험하고 조정하세요. IronBarcode의 유연한 API는 감지 감도의 조정부터 예상 바코드 포맷 설정까지 광범위한 읽기 프로세스 커스터마이징을 허용합니다.

자주 묻는 질문

디스크에 저장하지 않고 스트림에서 바코드를 읽는 방법은 무엇인가요?

IronBarcode를 사용하면 디스크에 저장하지 않고 MemoryStream 객체에서 바코드를 직접 읽을 수 있습니다. 스트림을 BarcodeReader.Read() 메서드에 전달하기만 하면 됩니다. 이 방식은 디스크 I/O 오버헤드를 제거하므로 웹 업로드, 데이터베이스 또는 API에서 이미지를 처리하는 데 이상적입니다.

바코드 판독기는 스트림 처리 시 어떤 이미지 형식을 지원합니까?

IronBarcode는 스트림에서 이미지를 읽을 때 JPEG, PNG, GIF, TIFF, BMP, SVG를 포함한 다양한 이미지 형식을 지원합니다. 이러한 유연성을 통해 형식 변환 없이 다양한 소스의 바코드 이미지를 처리할 수 있습니다.

여러 개의 바코드 이미지 스트림을 동시에 처리할 수 있습니까?

네, IronBarcode는 비동기 및 멀티스레딩 기능을 지원하여 여러 바코드 스트림을 동시에 처리함으로써 최상의 성능을 구현할 수 있습니다. 이는 특히 메모리에서 대량의 바코드를 읽어들이는 작업에 유용합니다.

파일 기반 바코드 판독 방식 대신 메모리 스트림을 사용하는 것의 장점은 무엇인가요?

IronBarcode를 사용한 메모리 스트림 처리는 디스크 I/O 오버헤드를 제거하여 더 빠른 성능을 제공하고, 민감한 데이터가 디스크 저장소에 저장되지 않으므로 보안이 강화되며, 디스크 액세스가 제한되거나 비용이 많이 드는 클라우드 환경과의 호환성이 향상됩니다.

PDF 문서 스트림에서 바코드를 어떻게 읽을 수 있나요?

IronBarcode는 이미지 스트림과 PDF 문서 스트림 모두에서 바코드를 읽을 수 있습니다. PDF MemoryStream을 BarcodeReader.Read() 메서드에 전달하기만 하면 PDF 페이지에서 발견된 모든 바코드를 추출하고 디코딩합니다.

스트림을 처리할 때 바코드 판독 프로세스를 세밀하게 조정하는 것이 가능할까요?

예, IronBarcode는 사용자 지정 가능한 바코드 판독기 설정을 제공하여 단일 스트림 또는 컬렉션에 저장된 여러 스트림을 처리하는 등 특정 사용 사례에 맞게 판독 프로세스를 최적화할 수 있습니다.

하릴 하시미 빈 오마르
소프트웨어 엔지니어
모든 훌륭한 엔지니어처럼, 하이릴은 열정적인 학습자입니다. 그는 C#, Python, Java에 대한 지식을 갈고닦아 Iron Software의 팀원들에게 가치를 더하고 있습니다. 하이릴은 말레이시아의 Universiti Teknologi MARA에서 화학 및 공정 공학 학사 학위를 취득한 후 Iron Software 팀에 합류했습니다.
시작할 준비 되셨나요?
Nuget 다운로드 2,108,094 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package BarCode
샘플을 실행하세요 실이 바코드로 변하는 모습을 지켜보세요.