C#에서 바코드 자르기 영역을 설정하는 방법

C#에서 바코드를 더 빨리 읽기 위한 바코드 크롭 영역 정의 방법

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

IronSoftware.Drawing.Rectangle을 사용하여 자르기 영역을 정의하면 IronBarcode의 스캔 영역을 특정 이미지 영역으로 제한할 수 있습니다. 이를 통해 관련 영역에만 집중함으로써 BarCode 판독 성능을 크게 향상시키고 오류를 줄일 수 있습니다.

IronBarcode에서 가장 중요한 기능 중 하나는 크롭 영역을 지정하는 기능입니다. 이 기능을 사용하면 IronBarcode가 IronSoftware.Drawing.Rectangle 객체를 사용하여 이미지 내의 CropRegion로 지정된 특정 BarCode나 영역만 읽을 수 있습니다. 이 기능을 사용하면 읽기 오류를 줄일 뿐만 아니라 읽기 성능을 개선할 수 있습니다. 이 기술은 바코드 위치가 예측 가능한 다중 페이지 문서 또는 고해상도 이미지를 다룰 때 특히 유용합니다.

여러 바코드가 있거나 복잡한 배경의 이미지를 처리할 때 크롭 영역을 정의하는 것은 바코드 읽기 속도를 최적화하는 데 중요합니다. 스캔 영역을 제한함으로써 전체 이미지를 스캔하는 것보다 최대 5배 빠른 처리 속도를 획득할 수 있으며, 비바코드 요소에서 발생할 수 있는 오탐지를 줄일 수 있습니다.

빠른 시작: 바코드를 더 빠르게 읽기 위한 크롭 영역 정의 및 적용

크롭 사각형을 만들어 IronBarcode에 바로 넣기—추가 설정 없이, 마찰도 없이. BarcodeReaderOptions을 사용하여 스캔 범위를 특정 이미지 영역으로 제한하는 것이 얼마나 쉬운지 확인해 보세요.

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

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

    var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) });
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

    arrow pointer

이미지에서 크롭 영역의 좌표와 크기를 찾는 방법

이미지에서 포인트의 좌표를 찾는 방법은 여러 가지가 있습니다. 한 가지 방법은 컴퓨터에서 페인트 응용 프로그램을 사용하여 이미지를 로드하는 것입니다. 자르기 영역의 첫 번째 좌표를 얻으려면, Rectangle의 왼쪽 상단 모서리가 될 원하는 첫 번째 지점으로 커서를 이동한 후, 화면 왼쪽 하단에 앱에서 표시하는 x, y 좌표를 확인하십시오. 그런 다음 두 번째 지점을 찾으십시오. 이 지점은 Rectangle의 오른쪽 하단 모서리가 됩니다. 아래 이미지를 참고하여 더 명확하게 이해하세요.

더 고급 시나리오에서는 GIMP나 Photoshop과 같은 정밀한 픽셀 좌표 및 측정 도구를 제공하는 이미지 편집 소프트웨어를 사용 고려해볼 수 있습니다. 일부 개발자는 온라인 좌표 찾기 도구를 사용하거나 이미지 위에 마우스를 올려 좌표를 표시하는 간단한 HTML/JavaScript 도구를 만들기를 선호합니다.

Crop region diagram showing rectangular area with corner coordinates (x1,y1) and (x2,y2) and dimension calculations

좌표를 결정하기 위해 어떤 도구를 사용할 수 있나요?

그런 다음 좌표 값을 Rectangle 객체의 속성으로 사용할 수 있습니다. 객체의 widthx2 - x1로 정의될 수 있으며, heighty2 - y1로 정의될 수 있습니다. 바코드 이미지를 다룰 때, 좌표는 왼쪽 상단 모서리(0,0)에서 시작하며 오른쪽(x축)과 아래쪽(y축)으로 이동할수록 증가한다는 것을 이해하는 것이 중요합니다.

여러 좌표 결정 접근 방법에는 다음이 포함됩니다:

  • 내장 OS 도구: Windows Paint, macOS Preview
  • 브라우저 개발자 도구: 웹 기반 이미지의 요소 검사
  • 전문 소프트웨어: Adobe Photoshop, GIMP
  • 사용자 정의 유틸리티: 간단한 좌표 뷰어 애플리케이션
  • IronBarcode의 디버깅 기능: 좌표 오버레이와 함께 처리된 이미지 내보내기

좌표로 사각형 차원을 어떻게 계산하나요?

두 모서리 점을 가지면 차원을 계산하는 것은 간단합니다. 사각형에는 네 가지 매개변수가 필요합니다: x좌표, y좌표, 폭, 높이. 크롭 영역을 올바르게 인스턴스화하는 방법은 다음과 같습니다:

:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-instantiate-CropRegion.cs
using IronBarCode;

int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;

IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2-x1, height: y2-y1);
Imports IronBarCode

Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522

Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2-x1, height:= y2-y1)
$vbLabelText   $csharpLabel

이 좌표 시스템은 IronBarcode의 이미지 보정 기능과 원활하게 작동하여 이미지의 특정 영역에만 필터를 적용할 수 있습니다.

CropRegion을 적용하고 바코드를 어떻게 읽나요?

IronBarcode가 읽을 위치에 CropRegions을 정의한 후, 다른 설정과 함께 해당 객체를 BarcodeReaderOptions의 속성 중 하나로 적용할 수 있습니다. 이는 BarcodeReader.Read() 메서드의 매개변수로 사용할 수 있습니다. 아래의 코드 스니펫은 이 과정을 보여줍니다:

BarcodeReaderOptions는 어떤 매개변수를 수용합니까?

BarcodeReaderOptions 클래스는 BarCode 판독 프로세스를 포괄적으로 제어할 수 있게 해줍니다. 크롭 영역 이외에도 다음을 구성할 수 있습니다:

  • 속도 최적화: 속도 설정을 사용하여 정확성과 성능 간의 균형을 맞춥니다
  • 바코드 유형: 검색할 정확한 형식을 지정합니다(지원되는 형식)
  • 이미지 필터: 왜곡되거나 손상된 바코드를 교정합니다
  • 멀티스레딩: 더 나은 성능을 위해 병렬 처리를 활성화합니다
  • 회전 처리: 회전된 바코드를 자동으로 감지합니다

크롭된 영역에서 여러 바코드 결과를 어떻게 처리합니까?

여러 바코드를 포함한 크롭된 영역을 스캔할 때, IronBarcode는 결과 컬렉션을 반환합니다. 각 결과에는 크롭 영역 내의 정확한 위치, 바코드 유형, 디코딩된 값 등 가치 있는 메타데이터가 포함되어 있습니다. 포괄적인 크롭 영역 처리를 구현하는 방법은 다음과 같습니다:

:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-apply-CropRegion.cs
using IronBarCode;
using System;

int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;

IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2 - x1, height: y2 - y1);

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    CropArea = crop1
};

var result = BarcodeReader.Read("sample.png", options);
foreach (var item in result)
{
    Console.WriteLine(item.Value);
}
Imports IronBarCode
Imports System

Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522

Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2 - x1, height:= y2 - y1)

Private options As New BarcodeReaderOptions() With {.CropArea = crop1}

Private result = BarcodeReader.Read("sample.png", options)
For Each item In result
	Console.WriteLine(item.Value)
Next item
$vbLabelText   $csharpLabel

위의 코드 스니펫에서, 우리는 BarcodeReaderOptions 객체 내에서 인스턴스화된 RectangleCropArea 속성으로 사용했습니다. 그런 다음 이 BarcodeReaderOptions 객체를 BarcodeReader.Read() 메서드의 매개변수로 사용하여 CropArea를 이미지에 적용하고 그 안의 BARCODE를 읽습니다.

고급 크롭 영역 기술

생산 응용 프로그램을 위해 다음과 같은 고급 전략을 고려하십시오:

  1. 동적 크롭 영역: 문서 템플릿이나 OCR 결과에 따라 크롭 영역을 계산합니다
  2. 다중 영역: 복잡한 레이아웃을 위한 단일 이미지에서 여러 크롭 영역을 처리합니다
  3. 성능 최적화: 최대 처리량을 위해 크롭 영역과 비동기 처리를 결합합니다
  4. 오류 처리: 예상 영역에서 바코드가 발견되지 않을 경우 대비 전략을 구현합니다

PDF 문서를 다룰 때, 특정 페이지에 크롭 영역을 적용하여 대용량 파일의 처리 시간을 크게 단축할 수 있습니다. 이는 바코드 위치가 표준화된 송장, 배송 라벨, 또는 양식에 특히 유용합니다.

크롭 영역 정의에 대한 모범 사례

크롭 영역의 효과를 최대화하려면:

  • 여백 추가: 약간의 변동을 고려하여 예상 바코드 위치 주위에 10-20px을 포함합니다
  • 철저히 테스트: 문서 세트 전체에서 크롭 영역이 작동하는지 확인합니다
  • 좌표 문서화: 애플리케이션을 위한 일반적인 크롭 영역의 참조 시트를 유지합니다
  • 스케일링 고려: 다른 이미지 해상도나 DPI 설정을 고려합니다
  • 성능 모니터링: 처리 시간을 추적하여 크롭 영역의 효과를 검증합니다

결함 허용성을 요구하는 응용 프로그램의 경우, 두 번의 검사를 구현하십시오: 먼저 크롭 영역을 스캔한 후 예상 영역에서 바코드가 발견되지 않으면 전체 이미지 스캔으로 다시 돌아갑니다.

결론

바코드 읽기 성능을 최적화하기 위해 .NET 애플리케이션에서 잘라내기 영역을 정의하는 것은 강력한 기술입니다. 스캔 영역을 특정 영역으로 제한하면 속도 향상을 이루면서도 거짓 양성률을 줄일 수 있습니다. 단일 이미지 또는 배치 작업을 처리할 때, 잘라내기 영역은 생산 환경에 필요한 정밀성과 성능을 제공합니다.

자주 묻는 질문

바코드 자르기 영역이란 무엇이며 왜 사용해야 할까요?

바코드 자르기 영역은 IronBarcode가 스캔 작업을 집중하는 이미지 내의 특정 영역입니다. IronSoftware.Drawing.Rectangle을 사용하여 자르기 영역을 정의하면 이미지에서 관련 영역만 스캔하도록 제한하여 오류를 줄이면서 바코드 판독 속도를 최대 5배까지 향상시킬 수 있습니다.

바코드 판독을 위한 작물 영역을 어떻게 정의하나요?

IronBarcode에서 자르기 영역을 정의하려면 특정 좌표(x, y)와 크기(너비, 높이)를 가진 IronSoftware.Drawing.Rectangle 객체를 생성한 다음, Read 메서드를 호출할 때 BarcodeReaderOptions.CropArea 속성에 전달하면 됩니다.

작물 재배 지역을 사용하면 어떤 성능 향상을 기대할 수 있나요?

IronBarcode의 영역 자르기 기능은 전체 이미지를 스캔하는 것보다 바코드 판독 성능을 최대 5배까지 향상시킬 수 있습니다. 이 기능은 바코드 위치를 예측할 수 있는 여러 페이지로 구성된 문서나 고해상도 이미지를 처리할 때 특히 유용합니다.

내 작물 재배 지역의 정확한 좌표를 어떻게 찾을 수 있나요?

Microsoft Paint, GIMP 또는 Photoshop과 같은 이미지 편집 소프트웨어를 사용하여 자르기 영역의 좌표를 찾을 수 있습니다. 이미지를 열고 커서를 원하는 영역의 왼쪽 상단 모서리로 이동하여 x, y 좌표를 기록한 다음, 오른쪽 하단 모서리 좌표를 찾아 IronBarcode에서 사각형의 너비와 높이를 결정하세요.

작물 재배 지역을 활용하는 것이 특히 유익한 경우는 언제입니까?

IronBarcode의 자르기 영역 기능은 여러 개의 바코드가 있는 이미지, 복잡한 배경, 여러 페이지로 구성된 문서 또는 바코드 위치가 일관되고 예측 가능한 고해상도 이미지를 처리할 때 특히 유용합니다.

바코드 작업에 IronBarcode를 사용하는 이점은 무엇인가요?

IronBarcode는 수많은 바코드 형식에 대한 지원, 고품질 이미지 생성, 견고한 읽기 기능을 갖추고 있어 C#의 바코드 작업에 포괄적인 도구를 제공하는 등의 이점을 제공합니다.

IronBarcode가 바코드 외관 사용자화를 제공하나요?

네, IronBarcode는 바코드 외관에 대한 광범위한 사용자화 옵션을 제공하여 컬러, 크기 및 텍스트 주석을 포함해 특정 디자인 요구에 맞출 수 있습니다.

IronBarcode가 비즈니스 프로세스 효율성을 어떻게 향상시킬 수 있나요?

IronBarcode는 빠르고 정확한 바코드 생성 및 읽기를 가능하게 하여 수동 데이터 입력 오류를 줄이고, 재고 및 자산 추적을 향상시킴으로써 비즈니스 프로세스 효율성을 향상시킵니다.

IronBarcode를 프로젝트에 구현하려면 어떤 프로그래밍 기술이 필요하나요?

C# 프로그래밍의 기본 지식만 있으면 IronBarcode를 프로젝트에 구현하기에 충분합니다. IronBarcode는 개발자를 안내할 수 있는 간단한 메서드와 포괄적인 문서를 제공합니다.

IronBarcode는 소규모 프로젝트와 대규모 Enterprise 응용 프로그램 모두에 적합합니까?

IronBarcode는 확장 가능하고 다재다능하게 설계되어 소규모 프로젝트뿐만 아니라 견고한 바코드 솔루션이 필요한 대규모 Enterprise 응용 프로그램에 적합합니다.

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

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

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