C#에서 바코드 방향 수정하는 방법 | IronBarcode

C#에서 바코드 방향을 수정하는 방법

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

IronBarcode는 내장된 AutoRotate 기능을 사용하여 바코드 방향을 자동으로 수정합니다. 이 기능은 이미지를 수동으로 회전하지 않고도 다양한 각도에서 바코드를 감지하고 읽으므로 기울거나 회전된 이미지에서도 정확한 바코드 판독을 보장합니다.

바코드 방향은 제품이나 문서에 바코드가 인쇄되거나 표시되는 각도를 나타냅니다. 다양한 레이아웃과 디자인 요구에 맞추기 위해 여러 각도로 조정할 수 있습니다. 가장 일반적인 방향은 가로로, 이는 표준이며 가장 널리 사용되는 형식입니다. 0 이외의 방향 각도는 라이브러리가 값을 감지하고 가져오는 데 도전 과제가 됩니다. IronBarcode는 바코드 및 QR 코드의 0이 아닌 모든 방향을 자동으로 감지하여 방향을 자동으로 수정합니다.

빠른 시작: 한 줄로 이미지 회전 자동 수정

다음은 IronBarcode의 AutoRotate 옵션(기본적으로 활성화됨)을 사용하여 회전된 이미지에서도 바코드를 정확하게 읽을 수 있는 방법입니다: 코드 한 줄로 쉽게 방향을 수정할 수 있습니다.

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

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

    var result = IronBarCode.BarcodeReader.Read("rotatedImage.png", new IronBarCode.BarcodeReaderOptions { AutoRotate = true });
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

    arrow pointer

내 응용 프로그램에서 바코드 방향을 어떻게 수정하나요?

자동 방향 수정을 적용하려면 BarcodeReaderOptionsAutoRotate 속성을 true로 설정하십시오. 이 속성은 기본적으로 true로 설정되어 있어 아무것도 하지 않아도 됩니다. 0이 아닌 방향의 바코드 이미지를 읽는 것이 즉시 작동해야 합니다.

AutoRotate 기능은 다양한 바코드 형식과 함께 작업할 때 특히 유용합니다. 이 기능은 QR 코드, 데이터 매트릭스 및 전통적인 선형 바코드를 포함합니다. 이미지에서 바코드를 읽거나 PDF 문서에서 스캔하든, 방향 수정은 신뢰할 수 있는 결과를 보장합니다.

다음 이미지를 샘플로 사용합시다. 다음 20° 회전45° 회전 샘플 이미지를 다운로드하십시오.

방향 테스트를 위해 시계 방향으로 20도 회전하여 비스듬한 세로 줄무늬를 보여주는 바코드
Barcode rotated 45 degrees showing diagonal orientation requiring correction

AutoRotate를 구현하는 데 필요한 코드는 무엇인가요?

:path=/static-assets/barcode/content-code-examples/how-to/image-orientation-correct-autorotate.cs
using IronBarCode;
using System;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Turn on auto rotation in ML detection
    AutoRotate = true,
};

var results = BarcodeReader.Read("rotate20.png", myOptionsExample);

// Print out the value
Console.WriteLine(results[0].Value);
Imports IronBarCode
Imports System

Private myOptionsExample As New BarcodeReaderOptions() With {.AutoRotate = True}

Private results = BarcodeReader.Read("rotate20.png", myOptionsExample)

' Print out the value
Console.WriteLine(results(0).Value)
$vbLabelText   $csharpLabel

AutoRotate 기능은 고급 기계 학습 알고리즘을 활용하여 바코드 방향을 자동으로 감지합니다. 이는 단일 이미지에서 여러 바코드를 처리할 때나 다양한 방향을 가진 이미지 일괄 처리를 수행할 때 특히 가치가 있습니다.

다양한 회전 각도와 작업하기

IronBarcode의 방향 수정은 다양한 회전 각도를 원활하게 처리합니다. 다음 예제는 다양한 회전 각도에서 바코드를 읽는 방법을 보여줍니다:

:path=/static-assets/barcode/content-code-examples/how-to/image-orientation-correction-3.cs
using IronBarCode;
using System;
using System.Collections.Generic;

// Process multiple rotated images
var rotatedImages = new List<string> { "rotate20.png", "rotate45.png", "rotate90.png" };
var options = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Combine with other reading optimizations
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = false
};

foreach (var imagePath in rotatedImages)
{
    var results = BarcodeReader.Read(imagePath, options);
    if (results.Length > 0)
    {
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results[0].Value}");
        Console.WriteLine($"Barcode Type: {results[0].BarcodeType}");
        Console.WriteLine($"Barcode Rotation: {results[0].Rotation}");
    }
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic

' Process multiple rotated images
Dim rotatedImages As New List(Of String) From {"rotate20.png", "rotate45.png", "rotate90.png"}
Dim options As New BarcodeReaderOptions With {
    .AutoRotate = True,
    ' Combine with other reading optimizations
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = False
}

For Each imagePath In rotatedImages
    Dim results = BarcodeReader.Read(imagePath, options)
    If results.Length > 0 Then
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results(0).Value}")
        Console.WriteLine($"Barcode Type: {results(0).BarcodeType}")
        Console.WriteLine($"Barcode Rotation: {results(0).Rotation}")
    End If
Next
$vbLabelText   $csharpLabel

성능 고려 사항

AutoRotate은 기본적으로 활성화되어 있지만, 그 성능 영향을 이해하면 바코드 판독 워크플로우를 최적화하는 데 도움이 됩니다. 이 기능은 IronBarcode의 판독 속도 옵션과 효율적으로 작동하여 응용 프로그램의 요구에 맞춰 정확도와 성능의 균형을 조정할 수 있습니다.

고속 처리가 필요한 애플리케이션을 위해 AutoRotate을 다른 최적화 기술과 결합할 수 있습니다:

:path=/static-assets/barcode/content-code-examples/how-to/image-orientation-correction-4.cs
var fastReadOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    Speed = ReadingSpeed.Faster,
    // Specify expected barcode types to improve performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Define crop region if barcode location is predictable
    CropArea = new System.Drawing.Rectangle(100, 100, 300, 300)
};
Imports System.Drawing

Dim fastReadOptions = New BarcodeReaderOptions With {
    .AutoRotate = True,
    .Speed = ReadingSpeed.Faster,
    ' Specify expected barcode types to improve performance
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
    ' Define crop region if barcode location is predictable
    .CropArea = New Rectangle(100, 100, 300, 300)
}
$vbLabelText   $csharpLabel

이미지 수정 기능과의 통합

AutoRotate은 IronBarcode의 이미지 수정 필터와 완벽하게 작동합니다. 회전된 품질이 낮은 이미지를 다룰 때 여러 수정을 적용할 수 있습니다:

:path=/static-assets/barcode/content-code-examples/how-to/image-orientation-correction-5.cs
var advancedOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Apply additional image corrections
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(),
        new BrightnessFilter(1.2f),
        new ContrastFilter(1.5f)
    }
};

var results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions);
Imports System

Dim advancedOptions As New BarcodeReaderOptions With {
    .AutoRotate = True,
    ' Apply additional image corrections
    .ImageFilters = New ImageFilterCollection From {
        New AdaptiveThresholdFilter(),
        New BrightnessFilter(1.2F),
        New ContrastFilter(1.5F)
    }
}

Dim results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions)
$vbLabelText   $csharpLabel

방향 수정을 위한 최선의 방법

  1. 기본 동작: AutoRotate가 기본적으로 활성화되어 있으므로, 이전에 비활성화한 적이 없거나 활성 상태를 명시적으로 확인하려는 경우가 아니라면 일반적으로 이를 명시할 필요가 없습니다.

  2. 잘라내기 영역과 결합: 성능을 개선하기 위해 잘라내기 영역을 사용할 때, 회전된 바코드를 수용할 수 있을 만큼 자르는 영역이 충분히 큰지 확인하세요.

  3. 멀티 스레드 처리: AutoRotate은 스레드 안전하며, 비동기 및 멀티스레드 작업과 잘 작동하여 고용량 바코드 처리 애플리케이션에 적합합니다.

  4. 형식별 고려사항: AutoRotate는 모든 지원 바코드 형식과 함께 작동하지만, PDF417 및 데이터 매트릭스와 같은 일부 형식은 추가적인 형식별 옵션으로부터 이점을 얻을 수 있습니다.

많은 경우 회전 수정만으로는 충분하지 않으며 필터가 필요합니다. 다음 기사에서 이미지 필터 사용 방법을 배워보세요: "이미지 수정 필터 사용 방법"

자주 묻는 질문

C# 애플리케이션에서 회전된 바코드 이미지를 어떻게 수정할 수 있나요?

IronBarcode는 내장된 자동 회전(AutoRotate) 기능을 사용하여 회전된 바코드 이미지를 자동으로 보정합니다. BarcodeReaderOptions에서 AutoRotate를 true로 설정하기만 하면(기본적으로 활성화됨), 라이브러리가 수동으로 회전할 필요 없이 어떤 각도의 바코드라도 감지하고 읽습니다.

바코드 방향 중 어떤 것을 자동으로 보정할 수 있나요?

IronBarcode의 자동 회전 기능은 20°, 45°, 90°, 180°, 270°를 포함한 모든 0도 이상의 회전 방향을 감지하고 수정할 수 있습니다. 이 기능은 QR 코드, 데이터 매트릭스, 기존 선형 바코드 등 다양한 바코드 형식에서 작동합니다.

기울어진 바코드를 처리하기 위해 특별한 코드를 작성해야 하나요?

특별한 코드는 필요하지 않습니다. IronBarcode의 AutoRotate 속성은 기본적으로 활성화되어 있으므로 방향 보정 기능이 바로 작동합니다. 다음 한 줄의 코드만 필요합니다. var result = IronBarCode.BarcodeReader.Read("rotatedImage.png");

PDF 문서에서도 방향 보정 기능이 작동하나요?

네, IronBarcode의 자동 회전 기능은 PDF 문서뿐 아니라 이미지에서 바코드를 스캔할 때도 완벽하게 작동합니다. 방향 보정 기능 덕분에 원본 파일 형식에 관계없이 안정적인 결과를 얻을 수 있습니다.

자동 방향 감지 기능은 어떤 기술로 구현되었습니까?

IronBarcode는 고급 머신러닝 알고리즘을 사용하여 바코드 방향을 자동으로 감지합니다. 이러한 지능적인 접근 방식을 통해 수동 조작 없이도 기울어지거나 회전된 이미지에서도 정확한 바코드 판독이 가능합니다.

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

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

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

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

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

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

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

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

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

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

Curtis Chau
기술 문서 작성자

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

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

시작할 준비 되셨나요?
Nuget 다운로드 2,317,217 | 버전: 2026.7 방금 출시
Still Scrolling Icon

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

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