푸터 콘텐츠로 바로가기
다른 구성 요소와 비교

C# 개발자를 위한 ZXing에서 바코드를 스캔하는 방법

바코드는 데이터를 명확하고 기계가 읽을 수 있는 방식으로 표현합니다. 처음에 바코드는 다양한 너비와 간격의 평행선으로 구성되어 데이터의 표현을 제공했습니다. 이 전통적인 선형 또는 1차원(1D) 바코드는 바코드 리더라는 전문 광학 장치로 스캔할 수 있었습니다. 그러나 바코드의 진화는 2차원(2D) 바코드, 즉 매트릭스 코드를 발명하기에 이르렀습니다. 전통적인 바코드와 달리 2D 바코드는 바 대신 사각형, 점, 육각형과 같은 패턴을 사용합니다. 이 2D 바코드를 읽기 위해서는 특정 광학 스캐너 설정이 가능하며, 또는 대안적인 방법으로 컴퓨터에 연결된 디지털 카메라를 사용하여 디코딩 소프트웨어를 실행할 수 있습니다. 게다가 스마트폰과 같은 모바일 기기는 통합 카메라와 전용 애플리케이션을 활용하여 2D 바코드 스캐너로 기능할 수 있습니다.

ZXing 바코드 스캐너

Zebra Crossing, 흔히 ZXing이라고 불리는 것은 오픈 소스, 다중 형식 1D/2D 바코드 이미지 처리 도구킷으로 Java로 개발되었으며 다른 언어에 대한 포트가 있습니다. ZXing은 코어 이미지 디코딩 라이브러리, Java 고유의 클라이언트 코드 및 안드로이드 클라이언트 바코드 스캐너를 포함한 여러 모듈로 구성되어 있습니다. 수많은 더 많은 독립적인 오픈 소스 프로젝트들이 그 위에 구축됩니다.

1. 기능

  • URL, 연락처 정보, 캘린더 이벤트 등을 추적할 수 있습니다.
  • Java SE 애플리케이션을 염두에 두고 만들어졌습니다.
  • 목적으로 바코드 스캐너 통합이 가능합니다.
  • 간단한 Google Glass 애플리케이션입니다.

2. ZXing을 .NET과 함께 사용하기

Visual Studio를 열고 파일 메뉴에서 "새 프로젝트"를 선택한 다음 "콘솔 애플리케이션"을 선택합니다. 이 기사에서는 C# 콘솔 앱을 선택합니다.

ZXing에서 C# 개발자를 위한 바코드를 스캔하는 방법 그림 1

프로젝트 이름과 파일 경로를 적절한 텍스트 상자에 입력합니다. 다음으로, 원하는 .NET Framework을 선택하려면 생성 버튼을 클릭합니다.

콘솔 애플리케이션을 선택했다면 이제 프로젝트는 구조를 생성하고 program.cs 파일을 열어 프로그램 코드를 입력하고 실행 또는 빌드를 할 수 있게 됩니다.

ZXing에서 C# 개발자를 위한 바코드를 스캔하는 방법 그림 2

2.1 ZXing Barcode 설치하기

ZXing 라이브러리를 설치하려면 NuGet Package Manager 콘솔에 다음 명령을 입력합니다:

Install-Package ZXing.Net.Bindings.Windows.Compatibility

대안으로, NuGet 패키지 관리자 도구를 사용하여 패키지를 얻을 수 있습니다. 아래 그림과 같습니다. 선택한 첫 번째 결과를 설치해 보십시오.

ZXing에서 C# 개발자를 위한 바코드를 스캔하는 방법 그림 3

2.2 ZXing을 사용하여 바코드 읽기 및 쓰기

다음 샘플 코드를 사용하여 바코드를 생성할 수 있습니다. ZXing을 사용하면 10개 이상의 바코드 형식을 생성할 수 있습니다.

using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;

// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");

// Save the bitmap as a PNG file
_bitmap.Save("Demo1.png");
using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;

// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");

// Save the bitmap as a PNG file
_bitmap.Save("Demo1.png");
$vbLabelText   $csharpLabel

위의 코드는 QrCodeEncodingOptions의 높이와 너비를 설정합니다. 그 다음 BarcodeWriter의 인스턴스를 생성합니다. BarcodeWriter에 대해 바코드 형식을 QR 코드로 설정합니다. 이전에 생성한 QR 코드 옵션을 작성자에게 할당합니다. Write 메소드는 BarcodeWriter 내에 주어진 문자열을 바코드로 인코딩하고 이를 비트맵 이미지로 반환합니다. 이미지는 비트맵의 Save 메소드를 사용하여 저장됩니다. 아래는 코드의 결과입니다.

ZXing에서 C# 개발자를 위한 바코드를 스캔하는 방법 그림 4

다음 코드 샘플은 ZXing을 사용하여 바코드를 디코딩하는 방법을 보여줍니다.

using ZXing.Windows.Compatibility;

// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Create a BarcodeReader object
var reader = new BarcodeReader();

// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);

if (result != null)
{
    // Output the decoded text to the console
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
using ZXing.Windows.Compatibility;

// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Create a BarcodeReader object
var reader = new BarcodeReader();

// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);

if (result != null)
{
    // Output the decoded text to the console
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
$vbLabelText   $csharpLabel

위의 코드에서, 우리는 먼저 이미지를 비트맵으로 로드하고 BarcodeReader 객체를 생성합니다. Decode 함수는 비트맵을 매개변수로 전달할 수 있게 하며, 여러 형식으로 결과를 반환할 수 있습니다. Text 속성을 사용하여 바코드에 인코딩된 텍스트를 가져옵니다.

ZXing에서 C# 개발자를 위한 바코드를 스캔하는 방법 그림 5

IronBarcode

이 바코드 라이브러리를 사용하면 바코드를 읽고 생성하는 것이 간단합니다. IronBarcode의 라이브러리를 사용하면 동적 바코드를 쉽게 만들 수 있습니다. 몇 줄의 코드만으로 이 간단한 라이브러리는 바코드를 생성하여 바코드 이미지를 인코딩하는 데 도움이 됩니다. IronBarcode를 사용하면 C# 및 VB.NET 같은 언어로 바코드를 생성할 수 있습니다.

1. 기능

  • IronBarcode는 UPC A/E, Databar, EAN 8/13, MSI, Code 39/93/128, CodaB, RSS 14/Expanded, 및 ITF를 포함하여 대부분의 바코드 이미지 형식 및 QR 표준을 읽고 쓸 수 있습니다.
  • 스캔 및 실시간 비디오 프레임을 스캔할 때 IronBarcode는 회전, 노이즈, 왜곡, 그리고 비스듬함을 교정할 수 있습니다. 읽기 정확도와 속도를 향상시키기 위해 IronBarcode는 생성 중에 바코드 이미지를 자동으로 전처리합니다. 동적 바코드는 자주 사용되며 이는 콘텐츠를 변경할 수 있게 합니다.
  • IronBarcode의 다중 코어 및 스레드 활용 능력은 배치 처리 서버에 유리합니다.
  • 단일 및 다중 페이지 문서에서 IronBarcode는 하나 이상의 바코드를 자동으로 찾을 수 있습니다.

2. IronBarcode 사용하기

해결책에 IronBarcode 라이브러리를 사용하려면 필요한 패키지를 다운로드해야 합니다. 이를 위해, NuGet Package Manager 콘솔에 다음 명령을 사용합니다:

Install-Package BarCode

대안으로, NuGet 패키지 관리자를 사용하여 "Barcode" 패키지를 찾고 다운로드할 수 있습니다. 그런 다음 프로그램에 다운로드할 필수 패키지를 선택할 수 있습니다.

ZXing에서 C# 개발자를 위한 바코드를 스캔하는 방법 그림 6

3. IronBarcode를 사용하여 바코드 읽기 및 쓰기

몇 줄의 코드만으로 IronBarcode 라이브러리를 사용하여 빠르게 바코드 이미지를 만들 수 있습니다. 또한, 생성된 바코드를 별도의 그림 파일로 저장할 수 있습니다. 콘솔 프로그램으로 바코드 레이블을 만드는 샘플 C# 코드입니다.

using IronBarCode;

// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");
using IronBarCode;

// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");
$vbLabelText   $csharpLabel

이 코드는 중간 수준의 오류 수정을 사용하여 500x500 픽셀의 그래픽을 생성한 다음 SaveAsPng 메소드를 사용하여 파일 위치에 저장합니다.

다음 코드 예제는 이전 예제에서 생성한 QR 코드에 인코딩된 텍스트를 읽습니다.

using IronBarCode;

// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);

// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();
using IronBarCode;

// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);

// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();
$vbLabelText   $csharpLabel

우리는 먼저 이미지를 비트맵으로 로드하고 Read 메소드를 사용하여 BarcodeReader 클래스에서 이미지를 읽습니다. Values 속성을 Read 메소드에서 반환된 BarcodeResults 객체에 사용하여 QR 코드에서 읽은 콘텐츠를 가져옵니다.

ZXing과 IronBarcode의 비교에 대해 더 알고 싶다면 이 다음 블로그 게시물을 읽어보세요.

우리의 바코드 읽기 튜토리얼은 IronBarcode를 사용하여 바코드와 QR 코드를 읽는 방법에 대한 추가 정보를 제공합니다. IronBarcode에 대한 추가 코드 튜토리얼.

결론

ZXing 바코드 스캐너는 고품질의 바코드를 생성할 수 있지만, 오래되어 지원하는 바코드 형식이 적습니다. 또한 제한된 문서 및 제품 지원만 제공합니다.

반면에 IronBarcode는 매우 효율적이고 유연하며 여러 운영 체제에서 작동할 수 있습니다. IronBarcode는 바코드의 색상, 크기, 간격 및 문자를 변경할 수 있습니다. 또한 Crystal Reports를 지원합니다.

개발자들은 IronBarcode를 무료로 사용할 수 있습니다. 사용자들은 추가 기능에 접근하고 1년 동안의 지원 및 제품 업데이트를 받을 수 있는 라이선스를 구매할 수 있습니다.

참고해 주세요ZXing은 해당 소유자의 등록 상표입니다. 이 사이트는 ZXing과 관련이 없으며, ZXing의 인증이나 후원을 받지 않았습니다. 모든 제품명, 로고 및 브랜드는 해당 소유자의 자산입니다. 비교는 정보 제공 목적으로만 사용되며, 작성 시점에 공개적으로 이용 가능한 정보를 반영합니다.

자주 묻는 질문

C#에서 HTML을 PDF로 변환하는 방법은 무엇인가요?

IronPDF의 RenderHtmlAsPdf 메서드를 사용하여 HTML 문자열을 PDF로 변환할 수 있습니다. 또한 RenderHtmlFileAsPdf 사용하여 HTML 파일을 PDF로 변환할 수도 있습니다.

IronBarcode 와 ZXing의 차이점은 무엇인가요?

IronBarcode ZXing에 비해 유연성이 뛰어나고 더 다양한 바코드 형식을 지원합니다. ZXing도 바코드 생성에는 효과적이지만, 지원하는 형식과 관련 문서가 제한적입니다. IronBarcode 효율성이 우수하고 다양한 운영 체제와 호환됩니다.

모바일 기기를 사용하여 바코드를 스캔하는 방법은 무엇인가요?

ZXing 안드로이드 클라이언트인 바코드 스캐너를 사용하면 기기의 카메라를 이용해 바코드를 스캔할 수 있습니다. 더욱 강력한 기능을 원한다면 IronBarcode 모바일 애플리케이션에 통합하여 바코드 스캔 기능을 향상시킬 수 있습니다.

IronBarcode 2D 바코드를 지원합니까?

네, IronBarcode QR 코드를 포함한 1D 및 2D 바코드를 모두 지원하여 다양한 바코드 판독 및 생성이 가능합니다.

IronBarcode 동적 바코드 생성을 지원할 수 있습니까?

IronBarcode 동적 바코드 생성을 지원하여 색상, 크기, 간격 및 글자체를 사용자 지정하여 특정 요구 사항을 충족할 수 있습니다.

IronBarcode .NET 프로젝트에 통합하려면 무엇이 필요합니까?

IronBarcode .NET 프로젝트에 통합하려면 NuGet 패키지 관리자 콘솔에서 Install-Package IronBarcode 사용하여 패키지를 설치하거나 NuGet 패키지 관리자에서 해당 패키지를 찾으세요.

IronBarcode 사용하는 데 비용이 발생하나요?

IronBarcode 무료 체험판을 제공하지만, 라이선스를 구매하면 추가 기능, 제품 업데이트 및 1년간의 지원을 받을 수 있습니다.

IronBarcode 사용하여 비디오 프레임에서 바코드를 읽을 수 있습니까?

네, IronBarcode 실시간 비디오 프레임을 처리하여 회전, 노이즈, 왜곡 및 기울기를 보정함으로써 바코드 스캔의 정확성과 속도를 향상시킬 수 있습니다.

바코드 스캔을 위한 ZXing의 특징은 무엇인가요?

ZXing은 특히 1D 및 2D 바코드 스캔을 위한 오픈 소스 바코드 스캔 툴킷을 제공합니다. 여기에는 핵심 이미지 디코딩 라이브러리와 안드로이드 클라이언트인 바코드 스캐너가 포함되어 있습니다.

IronBarcode 는 어떤 프로그래밍 언어를 지원하나요?

IronBarcode C# 및 VB .NET 지원하므로 .NET Framework 에서 작업하는 개발자에게 이상적입니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me