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

바코드 라이브러리 vs IronBarcode: C# 바코드 라이브러리 비교

바코더 SDK vs IronBarcode: 모바일 카메라 스캔 vs 전체 .NET 바코드 범위

Barkoder SDK는 ZXing, Dynamsoft, Scandit,IronBarcode와 함께 비교 대상에 오르며 거의 모든 "2026년 최고의 바코드 SDK" 목록에 등장합니다. .NET 프로젝트용 바코드 솔루션을 평가하는 개발자들은 조사 초기 단계에서 MatrixSight, DeBlur 모드, 다중 바코드 감지 및 DPM 지원에 대한 내용을 접하게 되며, 이러한 기능에 매우 매력을 느낍니다. NuGet에서, Barkoder는 두 가지 공식 .NET 패키지를 제공합니다: Plugin.Maui.BarkoderBarkoder.Xamarin. 두 패키지는 모바일 MAUI 및 Xamarin 앱을 위한 카메라 스캐닝 구성 요소입니다. Barkoder는 일반 for .NET 라이브러리를 제공하지 않습니다: ASP.NET Core, 콘솔, 데스크톱, 서버, 또는 PDF 표면은 없습니다. 이 비교는 Barkoder가 무엇인지, 해당 네이티브 도메인에서 강력한 이유, 그리고 IronBarcode가 .NET 개발자가 일반적으로 가지고 있는 광범위한 요구사항을 어떻게 충족하는지 설명합니다.

바코더 SDK 이해하기

Barkoder는 C/C++ 처리 코어를 기반으로 구축된 상용 바코드 스캐닝 SDK이며, iOS 및 Android용 네이티브 SDK를 제공합니다. 이 제품은 실시간 카메라 스캔 기능이 필요한 모바일 개발자를 대상으로 합니다. 이러한 스캔 기능은 창고 작업자가 휴대전화로 수행하거나 현장 기술자가 태블릿으로 수행하는 것과 같은 종류입니다. 유통 모델은 그 목표를 완벽하게 반영합니다.

SDK는 Swift 및 Objective-C API를 지원하는 CocoaPods를 통해 iOS용으로, Kotlin 및 Java API를 지원하는 Maven 통해 Android용으로, 그리고 React Native, Flutter, Cordova 및 Capacitor용 공식 플러그인을 통해 하이브리드 모바일용으로 배포됩니다. .NET에서 Barkoder는 두 개의 공식 NuGet 패키지 — Plugin.Maui.BarkoderBarkoder.Xamarin —를 제공하며, MAUI 및 Xamarin 모바일 앱을 위한 카메라 스캐닝 제어를 제공합니다.

MAUI와 Xamarin 외부에는 .NET용 Barkoder 옵션이 없습니다. 일반적인 Barkoder.NET 패키지는 없으며, ASP.NET Core, Azure Functions, AWS Lambda, Docker, 또는 Linux 서버 대상도 없습니다. 콘솔, 워커 서비스, WPF, WinForms, Avalonia, Blazor 대상도 없으며, 파일 또는 스트림 입력 모드, PDF 읽기, 바코드 생성을 지원하지 않습니다. MAUI 또는 Xamarin 모바일 앱 헤드 외부에 있는 .NET 작업의 경우 Barkoder는 범위에 포함되지 않습니다.

Barkoder SDK의 주요 아키텍처 특징:

  • 모바일 우선 아키텍처: iOS 및 Android 카메라 파이프라인을 위해 설계됨; 모든 처리는 C/C++ 코어를 통해 기기 내에서 이루어집니다.
  • .NET 적용 범위는 MAUI / Xamarin으로 제한: 공식 Plugin.Maui.BarkoderBarkoder.Xamarin 패키지는 카메라 스캐닝 제어를 노출합니다; 일반 for .NET 라이브러리가 없습니다
  • 바코드 생성 기능 없음: Barkoder는 읽기 전용 SDK입니다. 바코드를 생성하거나 인코딩할 수 있는 기능이 없는 경우
  • PDF 또는 파일 입력 없음: SDK는 PDF 문서, 파일 시스템의 이미지, 혹은 서버 측 문서 워크플로우에서 바코드를 읽는 개념이 없습니다
  • 서버 배포 없음: SDK는 ASP.NET Core, Azure Functions, Docker 컨테이너 또는 서버 측 .NET 실행 환경에서 실행되지 않습니다
  • 카메라 프레임 입력만: 입력은 항상 라이브 카메라 프레임입니다; 파일 경로, 스트림, 혹은 바이트 배열 오버로드가 없습니다

바르코더 건축 양식은 어떤 모습일까요?

SDK의 C/C++ 코어는 이미지 처리를 담당합니다. iOS 및 Android 래퍼는 플랫폼 네이티브 API를 통해 해당 핵심 기능을 노출합니다. .NET에서는 MAUI 및 Xamarin 플러그인이 동일한 네이티브 SDK를 래핑하고 BarkoderView 제어를 제공합니다:

// dotnet add package Plugin.Maui.Barkoder
// XAML hosts a BarkoderView; this is the code-behind callback.
using Barkoder.Maui;

public partial class ScanPage : ContentPage, IBarkoderDelegate
{
    public ScanPage()
    {
        InitializeComponent();
        BarkoderView.SetFlashEnabled(false);
        BarkoderView.SetZoomFactor(1.5f);
        BarkoderView.StartScanning(this);
    }

    public void DidFinishScanning(BarcodeResult[] result)
    {
        foreach (var r in result)
        {
            Console.WriteLine($"Type: {r.BarcodeTypeName}");
            Console.WriteLine($"Value: {r.TextualData}");
        }
    }
}
// dotnet add package Plugin.Maui.Barkoder
// XAML hosts a BarkoderView; this is the code-behind callback.
using Barkoder.Maui;

public partial class ScanPage : ContentPage, IBarkoderDelegate
{
    public ScanPage()
    {
        InitializeComponent();
        BarkoderView.SetFlashEnabled(false);
        BarkoderView.SetZoomFactor(1.5f);
        BarkoderView.StartScanning(this);
    }

    public void DidFinishScanning(BarcodeResult[] result)
    {
        foreach (var r in result)
        {
            Console.WriteLine($"Type: {r.BarcodeTypeName}");
            Console.WriteLine($"Value: {r.TextualData}");
        }
    }
}
Imports Barkoder.Maui

Public Partial Class ScanPage
    Inherits ContentPage
    Implements IBarkoderDelegate

    Public Sub New()
        InitializeComponent()
        BarkoderView.SetFlashEnabled(False)
        BarkoderView.SetZoomFactor(1.5F)
        BarkoderView.StartScanning(Me)
    End Sub

    Public Sub DidFinishScanning(result As BarcodeResult()) Implements IBarkoderDelegate.DidFinishScanning
        For Each r In result
            Console.WriteLine($"Type: {r.BarcodeTypeName}")
            Console.WriteLine($"Value: {r.TextualData}")
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

이것은 MAUI 모바일 앱 안에서 라이브 카메라에 대해 작동합니다. 파일 오버로드, 스트림 오버로드, PDF 오버로드가 없으며, ASP.NET Core, 콘솔, 데스크탑 프로젝트에 대한 동등한 표면이 없습니다. 네이티브 iOS 및 Android 코드패스는 Swift, Objective-C, Kotlin, Java에서 동일한 컴포넌트 모델을 사용합니다.

Barkoder가 라운드업에서 자리잡는 기능은 실제 역량입니다. MatrixSight와 DeBlur 모드는 물리적으로 손상되었거나, 인쇄 상태가 좋지 않거나, 조명이 부족한 환경에서 촬영된 바코드를 판독하는 독자적인 손상 복구 기술을 제공합니다. 다중 바코드 감지 기능은 단일 카메라 프레임에서 여러 바코드를 동시에 해독하여 창고 작업자가 선반 전체를 한 번에 스캔할 수 있도록 합니다. DPM(Direct Part Marking) 스캐닝은 대부분의 범용 라이브러리에서 제대로 처리하지 못하는 Razor 에칭 및 도트 피닝 방식의 DataMatrix 및 기타 형식을 지원합니다. 고밀도 포맷 지원에는 PDF417, 아즈텍 및 기타 2D 포맷이 포함되며, 모바일 카메라에서 높은 정확도를 제공합니다.

IronBarcode 이해하기

IronBarcode 는 모든 .NET 환경에서 바코드 읽기 및 생성 등 전체 바코드 워크플로를 지원하는 네이티브 .NET 라이브러리입니다. 이는 .NET 플랫폼용 Barkoder의 기능과 동일하며, 서버 및 데스크톱 환경에서만 유용한 추가 기능이 포함되어 있습니다.

IronBarcode NuGet 통해 설치되며 완전히 로컬에서 실행됩니다. 바코드 처리 중에는 네트워크 호출이 발생하지 않습니다. 이 서비스는 에어갭 환경, Azure Functions, Docker 컨테이너, AWS Lambda는 물론 .NET Framework 4.6.2부터 .NET 9까지 모든 .NET 런타임 환경에서 작동합니다. 정적 API 모델 덕분에 스캐너 인스턴스를 관리할 필요가 없고, 수명 주기를 추적할 필요도 없으며, 동시 호출로 인한 스레드 안전성 문제도 없습니다.

IronBarcode 의 주요 특징:

  • 완벽한 .NET 호환성: .NET Framework 4.6.2 이상, .NET 6, 7, 8 및 9를 지원합니다. Windows, Linux, macOS, Docker, Azure 및 AWS에서 작동합니다.
  • 읽기 및 생성: 파일, 스트림 및 PDF에서 바코드를 읽고 50개 이상의 형식으로 바코드를 생성하는 기능을 모두 지원합니다.
  • 정적 API 디자인: BarcodeReader.Read()BarcodeWriter.CreateBarcode()는 상태를 관리할 인스턴스 없이 정적인 호출입니다.
  • 머신러닝 기반 오류 수정: 머신러닝 기반 이미지 전처리 파이프라인은 손상되거나, 품질이 저하되었거나, 저품질인 바코드를 처리합니다.
  • PDF 기본 지원: 중간 이미지 추출 과정 없이 PDF 문서에서 바코드를 직접 읽습니다.
  • 완벽한 .NET 생태계 통합: ASP.NET Core 의존성 주입, async/await, 미들웨어 및 호스팅 패턴과 호환됩니다.

기능 비교

다음 표는 Barkoder SDK와IronBarcode의 근본적인 차이점을 보여줍니다.

기능 바코더 SDK IronBarcode
.NET /C# 지원 MAUI / Xamarin 카메라 UI 전용 전체 — 모든 .NET 런타임
NuGet 패키지 Plugin.Maui.Barkoder, Barkoder.Xamarin IronBarcode
바코드 판독 네, 모바일 카메라입니다. 네, 파일, 스트림, PDF 모두 가능합니다.
바코드 생성 None 전체 — 50개 이상의 형식
PDF 처리 None 내부 지원
서버 측 배포 None 전체 내용 — ASP.NET Core, Azure, Lambda, Docker
가격 모바일 SDK 라이선스 영구 라이선스 제공

상세 기능 비교

기능 바코더 SDK IronBarcode
독서
손상된 바코드 복구 매트릭스사이트 / 디블러 ML 오류 수정, ReadingSpeed.ExtremeDetail
다중 바코드 감지 예 — 카메라 프레임 ExpectMultipleBarcodes = true
DataMatrix/DPM 지원 예 — BarcodeEncoding.DataMatrix
QR 코드 읽기
PDF417
아즈텍
코드128, 코드39, EAN 예 — 50개 이상의 형식
자동 형식 감지
세대
바코드 생성 None 전체 — 모든 형식
QR 코드 생성 None QRCodeWriter.CreateQrCode()
QR 코드에 로고/브랜딩 None AddBrandLogo()
플랫폼
.NET/C# MAUI / Xamarin 카메라 UI 전용 전체
iOS(네이티브) 예 (주요한) .NET MAUI 통해
안드로이드(네이티브) 예 (주요한) .NET MAUI 통해
윈도우 / 리눅스 / macOS None 전체
Docker/컨테이너 None 전체
Azure Functions None 전체
AWS 람다 None 전체
에어갭/오프라인 예 (기기 내에서) 예 (완전히 현지화되었습니다)
API 설계
async/await 지원 해당 없음 전체
의존성 주입 None 완벽한 .NET DI 통합
PDF 문서 입력 None BarcodeReader.Read("doc.pdf")
라이선스
라이선스 모델 모바일 SDK 라이선스 영구적, 일회성 구매
가격(입문) 영업 연락 자세한 내용은 ironsoftware.com/csharp/barcode/licensing 를 참조하세요.

.NET 배포 모델

Barkoder SDK와 IronBarcode의 가장 근본적인 차이는 범위입니다. Barkoder의 .NET 표면은 MAUI 및 Xamarin 카메라 UI로 제한됩니다; IronBarcode는 .NET 생태계의 나머지를 커버합니다.

바코더 SDK 접근 방식

Barkoder의 게시된 플랫폼 목록은 iOS 네이티브(Swift / Objective-C), Android 네이티브(Kotlin / Java), React Native, Flutter, Cordova, Capacitor, .NET MAUI, Xamarin, Web(WASM)입니다. .NET에서 이는 Plugin.Maui.BarkoderBarkoder.Xamarin에 매핑됩니다. ASP.NET Core, Azure Functions, AWS Lambda, Docker, Linux 서버, WPF, WinForms, Avalonia, Blazor는 없습니다. SDK의 아키텍처는 모바일 기기의 실시간 카메라 파이프라인을 중심으로 구축되었습니다. 파일 기반 입력 모드, 스트림 API, 일괄 처리 경로 또는 서버 측 실행 모델은 지원하지 않습니다.

.NET 작업이 MAUI 또는 Xamarin 모바일 앱 외에 — 백엔드 API, 워커 서비스, 데스크톱 도구, PDF 문서 파이프라인에서 Barkoder를 사용할 경로는 없습니다. 서버 사용을 위한 비동기 API 표면, 종속성 주입 통합, Azure 또는 AWS 람다 지원 그리고 PDF 처리 기능이 없습니다.

IronBarcode 접근법

IronBarcode 는 NuGet 에서 단 한 번의 명령으로 설치되며, 시작 시 라이선스 키로 초기화됩니다.

// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

' Read a barcode from an image
Dim results = BarcodeReader.Read("scan.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

이 라이브러리는 네트워크 호출이나 데이터 전송, 외부 종속성 없이 완전히 로컬에서 실행됩니다. 이 라이브러리는 ASP.NET Core 의존성 주입과 통합되고, async/await를 지원하며, 수정 없이 Docker,Azure Functions및 AWS Lambda에 배포할 수 있습니다. 실제 운영 환경에서 사용할 수 있는 ASP.NET Core 통합에 대해서는 IronBarcode 설명서를 참조하십시오.

손상된 바코드 복구

손상된 바코드 복구 기능은 개발자들이 바코더(Barkoder)를 알아보게 되는 가장 큰 이유입니다. 바코더의 MatrixSight 및 DeBlur 모드는 물리적 라벨이 마모되거나 젖거나 부분적으로 가려지는 물류 및 제조 환경에 적합합니다.

바코더 SDK 접근 방식

Barkoder의 DeBlur 모드는 디코딩 시도 전에 이미지 전처리(대비 향상, 선명도 향상, 회전 보정)를 적용합니다. 이 기능은 모바일 카메라 파이프라인 내에서만 작동합니다. 모드는 스캔이 시작되기 전에 SDK 수준에서 구성되며, 카메라 피드는 지속적으로 처리됩니다. 파일 기반 경로에는 이에 상응하는 것이 없습니다.

// dotnet add package Plugin.Maui.Barkoder
// Configured against the BarkoderView in a MAUI ContentPage
BarkoderView.DeblurEnabled = true;
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.Code128 });
BarkoderView.StartScanning(this);
// dotnet add package Plugin.Maui.Barkoder
// Configured against the BarkoderView in a MAUI ContentPage
BarkoderView.DeblurEnabled = true;
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.Code128 });
BarkoderView.StartScanning(this);
$vbLabelText   $csharpLabel

IronBarcode 접근법

IronBarcode는 ReadingSpeed.ExtremeDetail를 통해 동일한 문제를 해결하며, 디코딩을 시도하기 전에 ML 기반 손상 복구, 대비 개선, 샤프닝 및 회전 수정이 적용된 다중 이미지 분석 파이프라인을 활성화합니다. 이 기능은 파일, 스트림 또는 바이트 배열 등 모든 입력에 대해 작동합니다.

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.ExtremeDetail,
    .ExpectMultipleBarcodes = False
}

Dim results = BarcodeReader.Read("worn-shipping-label.png", options)

If results.Any() Then
    Console.WriteLine($"Recovered: {results.First().Value}")
Else
    Console.WriteLine("Could not decode — image quality too low")
End If
$vbLabelText   $csharpLabel

ReadingSpeed.Balanced는 대부분의 깨끗하거나 경미하게 손상된 바코드를 처리하며 더 빠릅니다. Balanced가 실패한 경우에는 ExtremeDetail을 예약하세요—이는 철저하지만 상당히 느립니다. 읽기 어려운 바코드를 읽는 방법에 대한 자세한 내용은 IronBarcode 읽기 설명서를 참조하십시오.

다중 바코드 감지

멀티 바코드 감지는 두 플랫폼 간에 직접적인 매핑을 제공합니다. Barkoder는 카메라 프레임 내의 여러 코드를 처리합니다.IronBarcode문서 또는 이미지 파일에 있는 여러 코드를 처리합니다.

바코더 SDK 접근 방식

바코더의 멀티 바코드 모드는 단일 카메라 프레임에서 여러 개의 바코드를 동시에 감지하고 디코딩합니다. 창고 환경에서 작업자는 선반 위로 휴대폰을 들고 모든 바코드 값을 한 번에 수신합니다. 이 설정은 스캔이 시작되기 전에 SDK 수준에서 구성됩니다.

// Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = true;
BarkoderView.StartScanning(this);

// IBarkoderDelegate callback delivers all decoded codes per frame
public void DidFinishScanning(BarcodeResult[] results)
{
    foreach (var r in results)
        Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}");
}
// Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = true;
BarkoderView.StartScanning(this);

// IBarkoderDelegate callback delivers all decoded codes per frame
public void DidFinishScanning(BarcodeResult[] results)
{
    foreach (var r in results)
        Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}");
}
' Plugin.Maui.Barkoder — multi-scan mode in a MAUI ContentPage
BarkoderView.MulticodeCachingEnabled = True
BarkoderView.StartScanning(Me)

' IBarkoderDelegate callback delivers all decoded codes per frame
Public Sub DidFinishScanning(results As BarcodeResult())
    For Each r In results
        Console.WriteLine($"{r.BarcodeTypeName}: {r.TextualData}")
    Next
End Sub
$vbLabelText   $csharpLabel

IronBarcode 접근법

.NET 서버 측 애플리케이션에서 멀티 바코드 시나리오는 일반적으로 문서, 예를 들어 배송 추적 바코드와 제품 바코드가 있는 송장 또는 페이지당 여러 품목이 있는 배송 명세서와 같은 경우에 발생합니다. IronBarcode는 ExpectMultipleBarcodes = true으로 이를 처리하며, 동일한 옵션은 이미지와 PDF에서도 동일하게 작동합니다:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True
}

' Works on images and PDFs — single method call
Dim results = BarcodeReader.Read("shipping-manifest.pdf", options)

For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}")
Next
$vbLabelText   $csharpLabel

페이지 추출도 없고, 여러 번 요청도 필요 없으며, 바코드별 네트워크 오버헤드도 없습니다. PDF 파일은 단일 호출로 네이티브 방식으로 읽힙니다. 멀티 바코드 및 PDF 읽기에 대한 자세한 내용은 IronBarcode 설명서를 참조하십시오.

DataMatrix 및 고밀도 포맷 지원

DataMatrix는 산업 및 DPM 사용 사례의 핵심이며, Barkoder는 제조, 의료 및 자동차 분야에서 이러한 형식을 강조합니다.

바코더 SDK 접근 방식

Barkoder는 Razor 각인 및 도트 피닝 마크에 대한 DPM 구성을 통해 DataMatrix 읽기를 지원합니다. SDK는 PDF417, 아즈텍 및 기타 고밀도 2D 형식을 지원하며 모바일 카메라에서 높은 정확도를 제공합니다. 이 모든 것은 iOS 또는 Android의 카메라 파이프라인 내에서 작동합니다.

// Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.DataMatrix });
BarkoderView.StartScanning(this);
// Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(new[] { BarcodeType.DataMatrix });
BarkoderView.StartScanning(this);
' Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(New BarcodeType() { BarcodeType.DataMatrix })
BarkoderView.StartScanning(Me)
$vbLabelText   $csharpLabel

Barkoder는 DataMatrix 또는 기타 바코드 형식을 생성하지 않습니다. 읽기 전용 SDK입니다.

IronBarcode 접근법

IronBarcode DataMatrix를 기본적으로 읽고 생성합니다. 읽기 측면에서는 ReadingSpeed.ExtremeDetail이 Razor로 새겨진 DPM 마크의 전형적인 낮은 대비와 거친 가장자리를 처리합니다. 생성 측면에서는 BarcodeWriter.CreateBarcode()이 부품 라벨 생성용 DataMatrix를 생성합니다:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"

' Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix) _
    .SaveAsPng("part-label.png")

' Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500) _
    .AddBrandLogo("company-logo.png") _
    .SaveAsPng("branded-qr.png")

' Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
Dim results = BarcodeReader.Read("etched-part.png")
$vbLabelText   $csharpLabel

지원되는 형식 및 생성 옵션의 전체 목록은 IronBarcode 바코드 생성 가이드를 참조하십시오.

API 매핑 참조

이 표는 Barkoder의 MAUI 카메라 스캔 API와 IronBarcode가 파일, 스트림, PDF 입력을 사용하는 .NET 프로젝트에서 동일한 결과를 어떻게 달성하는지를 개념적으로 비교합니다:

바르코더 컨셉 IronBarcode동등품
라이선스 키를 사용한 SDK 초기화 IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY"
BarkoderView.DeblurEnabled = true Speed = ReadingSpeed.ExtremeDetail
BarkoderView.MulticodeCachingEnabled = true ExpectMultipleBarcodes = true
SetEnabledBarcodeTypes(BarcodeType.DataMatrix) BarcodeEncoding.DataMatrix (읽을 때 자동 감지됨)
BarkoderView.StartScanning(this) BarcodeReader.Read("image.png") — 동기 결과
BarcodeResult.TextualData result.Value
BarcodeResult.BarcodeTypeName result.Format
MatrixSight 손상 복구 ML 전처리를 포함한 ReadingSpeed.ExtremeDetail
카메라 프레임 분석 파일/스트림/바이트 배열 입력
온디바이스 처리 완전 로컬 연결 - 네트워크 통화 없음
세대 지원 없음 BarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode()
PDF를 지원하지 않습니다. BarcodeReader.Read("document.pdf") — 네이티브
서버 배포 없음 ASP.NET Core, Docker, Azure Functions, Lambda 환경에서 작동합니다.

팀이 Barkoder SDK에서IronBarcode로 전환을 고려할 때

MAUI 외부의 .NET 프로젝트 요구사항

가장 흔한 시나리오는 간단합니다. 개발자 또는 팀이 .NET 애플리케이션( ASP.NET Core, Windows 서비스, 콘솔 도구, 데스크톱 앱 등)을 개발하는 과정에서 조사 중에 Barkoder를 접하게 되는 것입니다. 그들은 MatrixSight, DeBlur 및 다중 바코드 감지에 대해 읽고, 기능이 매력적이라고 판단한 후, .NET 적용 범위가 Plugin.Maui.BarkoderBarkoder.Xamarin — 둘 다 모바일 카메라 UI 전용 — 라는 것을 발견합니다. 이러한 상황에 처한 팀들은 Barkoder에서 다른 플랫폼으로 옮겨가지 않고 있습니다. 그들은 처음부터 자신들의 플랫폼에 맞는 올바른 도구를 찾아내고 있습니다.IronBarcode는 Barkoder가 모바일에서 요구하는 사항을 충족하는 .NET 기반 솔루션입니다.

서버 측 바코드 처리 워크플로우

일부 팀은 처음에 모바일 스캐닝 앱(Barkoder 또는 다른 모바일 SDK)을 사용하여 바코드 처리 워크플로 프로토타입을 제작한 다음, 나중에 서버 측에서 해당 워크플로를 복제하거나 확장해야 합니다. 일반적인 예로는 API 엔드포인트를 통해 업로드된 바코드 이미지를 처리하거나, 문서 관리 시스템에서 PDF 문서의 바코드를 읽거나, 스캔한 라벨 아카이브를 일괄 처리하는 것 등이 있습니다. Barkoder는 서버 측 배포 모델을 지원하지 않으므로 이러한 워크플로는 불가능합니다.IronBarcode ASP.NET Core, Azure Functions, Docker 및 AWS Lambda에서 모두 동일한 정적 API를 사용하여 이러한 모든 것을 처리합니다.

바코드 생성 요구 사항

물류, 재고 관리 또는 규정 준수를 위한 .NET 애플리케이션을 개발하는 팀은 바코드를 읽는 것이 워크플로의 절반에 불과하다는 사실을 자주 발견합니다. 바코드 생성, 즉 라벨 인쇄, 문서에 QR 코드 삽입, 배송 명세서 생성은 마찬가지로 중요합니다. Barkoder는 설계상 읽기 전용입니다. 발전 능력이 없습니다. 프로젝트 범위가 순수 읽기 작업을 넘어 확장될 경우, 워크플로의 양쪽 측면을 모두 포괄하는 라이브러리를 사용하면 두 번째 종속성을 통합할 필요가 없어집니다.IronBarcode일관된 API를 통해 50개 이상의 형식에 대한 읽기 및 생성 기능을 모두 제공합니다.

PDF 문서 처리

.NET Enterprise 애플리케이션에서 바코드는 송장, 배송 명세서, 의료 기록, 규정 준수 문서와 같은 PDF 문서에 자주 포함됩니다. Barkoder는 이러한 워크플로에 대한 개념이 없습니다. 이 라이브러리는 모바일 기기의 카메라 입력을 위해 설계되었습니다. PDF 문서에서 바코드를 읽고, 비즈니스 로직에 필요한 바코드 데이터를 추출하거나, 문서 아카이브 전체에서 바코드 존재 여부를 확인해야 하는 팀은 PDF를 기본적으로 지원하는 라이브러리가 필요합니다.IronBarcode중간 이미지 추출 과정 없이 PDF에서 바코드를 직접 읽습니다.

가격 및 배포 예측 가능성

Barkoder의 모바일 SDK 가격은 모바일 애플리케이션 및 배포 모델에 대한 구조 — 월 구독, 앱당, 기기당에서 모바일 배포에 묶여 있습니다. .NET 작업이 MAUI 또는 Xamarin 외부에 있는 팀에게는 그 가격 모델이 적용되지 않습니다, 왜냐하면 SDK가 거기서 실행되지 않기 때문입니다. IronBarcode가 적절한 도구일 때, 가격 모델은 간단합니다: 요청마다 요금이 부과되지 않고, 처리된 바코드 수에 대한 볼륨 제한이 없는 영구 라이센스입니다.

일반적인 마이그레이션 고려사항

모바일 카메라 입력에서 파일 기반 입력으로

Barkoder 기반 모바일 스캐닝 프로토타입을 구현했고 해당 기능을 .NET 에서 복제해야 하는 팀은 입력 모델이 카메라 프레임에서 파일, 스트림 또는 바이트 배열로 변경된다는 것을 알게 될 것입니다. IronBarcode는 동일한 데이터를 여러 가지 형태로 수락합니다 — 파일 경로 문자열, Stream, byte[], 또는 System.Drawing.Image. 바코드 처리 로직은 그 외에는 동일합니다.

// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
' All of these call the same underlying pipeline
Dim results1 = BarcodeReader.Read("scan.png")
Dim results2 = BarcodeReader.Read(imageStream)
Dim results3 = BarcodeReader.Read(imageBytes)
$vbLabelText   $csharpLabel

속도와 정확도의 상충 관계

Barkoder의 DeBlur 모드는 구성된 경우 항상 활성 상태이며 모바일 카메라 루프 내에서 실행됩니다. IronBarcode는 ReadingSpeed을 통해 정확도 대 속도의 균형을 명시적으로 노출합니다. 대부분의 파일에 ReadingSpeed.Balanced이 적합합니다. Balanced가 디코딩에 실패한 손상되거나 열화된 입력에 대해, ReadingSpeed.ExtremeDetail은 전체 다중 통과 ML 파이프라인을 적용합니다. 기본적으로 Balanced을 사용하고 실패 시에만 ExtremeDetail으로 대체하는 방식으로 배치 처리 구조를 설정하는 것이 성능에 민감한 워크플로우에 대한 권장 접근 방식입니다.

ASP.NET Core 에서의 비동기 통합

IronBarcode의 BarcodeReader.Read() 메서드는 동기식입니다. 동시 요청을 처리하는 ASP.NET Core 엔드포인트에서는 요청 스레드의 차단을 피하기 위해 Task.Run() 내부에 호출을 래핑합니다:

var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
Dim results = Await Task.Run(Function() BarcodeReader.Read(imageBytes, options))
$vbLabelText   $csharpLabel

성능에 대한 형식 사양

IronBarcode 기본적으로 바코드 형식을 자동으로 감지합니다. 예상되는 형식을 알고 있는 고처리량 시나리오의 경우, 형식을 지정하면 일치하지 않는 형식 테스트를 제거하여 처리 시간을 단축할 수 있습니다. 형식을 미리 알고 있는 경우 검색을 제한하기 위해 BarcodeReaderOptions.ExpectBarcodeTypes을 사용합니다.

IronBarcode 추가 기능

Barkoder의 모바일 기능과 직접적으로 동일한 기능 외에도IronBarCode.NET 서버 및 데스크톱 환경에 특화된 기능을 제공합니다.

  • QR 코드 로고 내장하기: QRCodeWriter.CreateQrCode().AddBrandLogo()는 생성된 QR 코드의 중앙에 브랜드 이미지를 추가합니다 — 마케팅 및 패키징 워크플로우의 일반적인 요구사항입니다
  • PDF 바코드 읽기 : 네이티브 PDF 입력 방식이므로 중간 이미지 추출 과정이 필요 없습니다. 여러 페이지로 구성된 PDF 파일은 한 번의 호출로 스캔됩니다.
  • PDF에 바코드 찍기 :IronBarcode바코드를 생성하여 기존 PDF 문서에 찍을 수 있으므로 자동화된 라벨 및 문서 워크플로우를 구현할 수 있습니다.
  • 대량 이미지 읽기: BarcodeReader.ReadBulk()는 높은 처리량의 배치 작업을 위해 여러 이미지들을 동시에 처리합니다
  • 스타일 지정 QR 코드 생성 : QR 코드의 색상, 여백 및 오류 수정 수준을 사용자 지정할 수 있습니다.
  • GS1 및 HIBC 형식 : 표준 1D 및 2D 형식을 넘어 의료 및 공급망 바코드 표준을 지원합니다.

.NET 호환성 및 미래 준비

IronBarcode는 .NET Framework 4.6.2 및 .NET 9까지의 모든 최신 .NET 버전을 지원하며, .NET 10 릴리스 주기와 개발을 추적하고 있습니다. 라이브러리는 Windows, Linux 및 macOS에서 실행되며 Docker,Azure Functions및 AWS 람다 배포 타겟에 대해 테스트됩니다. .NET 생태계가 크로스 플랫폼 및 클라우드 네이티브 패턴으로 계속 발전함에 따라, 클라우드 종속성, API 키 관리 및 네트워크 지연이 없는 IronBarcode의 완전한 로컬 실행 모델은 최신 .NET 애플리케이션 아키텍처의 방향과 일치합니다.

결론

Barkoder SDK와 IronBarcode는 크게 다른 도메인에서 작동합니다. Barkoder는 iOS와 Android용으로 구축된 모바일 카메라 스캐닝 SDK이며, C/C++ 처리 코어, 하이브리드 모바일 배급, 그리고 MAUI 및 Xamarin 카메라 UI를 위한 NuGet에서의 Plugin.Maui.BarkoderBarkoder.Xamarin을 갖추고 있습니다. IronBarcode는 서버, 데스크탑, MAUI 프로그램 처리 및 클라우드 배포를 위해 구축된 네이티브 .NET 라이브러리로 NuGet을 통해 배포되며 표준 패턴을 통해 .NET 생태계에 통합되어 있습니다. 두 라이브러리는 좁게 겹칩니다 — MAUI 및 Xamarin만, 그리고 오직 카메라 UI 사용 사례에 대해서만.

Barkoder는 MAUI, Xamarin, React Native, Flutter, Cordova, 또는 Capacitor 모바일 앱 내부에서 카메라 스캐닝 UI를 빌드할 때 적합한 선택입니다. MatrixSight 및 DeBlur 기능은 이미지 품질을 제어할 수 없는 필드 스캐닝 시나리오에 대해 진정으로 강력합니다. 이 제품의 멀티 바코드 감지 및 DPM 지원 기능은 제조 및 물류 모바일 워크플로우에 매우 적합합니다. 팀이 기기 카메라로 물리적인 아이템을 스캔하는 모바일 프론트 엔드를 구축하고 있다면, Barkoder는 평가에 포함되어야 합니다.

IronBarcode 는 바코드 읽기, 바코드 생성 또는 둘 다 필요한 .NET 애플리케이션( ASP.NET Core API, Windows 서비스, 문서 처리 파이프라인, 데스크톱 도구 또는 클라우드 함수)을 구축할 때 적합한 선택입니다. 이 솔루션은 단일 NuGet 패키지로 전체 바코드 워크플로를 지원하며, 네트워크 종속성 없이 완전히 로컬에서 실행되고, 종속성 주입, async/await, 클라우드 호스팅을 포함한 표준 .NET 패턴과 통합됩니다. Barkoder를 비교 라운드업을 통해 알게된 .NET 개발자를 위해, IronBarcode는 파일, 스트림 및 PDF 입력을 통해 .NET 플랫폼 전반에 걸쳐 손상 허용 읽기, 멀티 바코드 감지, DataMatrix 및 고밀도 형식 지원이라는 동일한 핵심 기능을 제공합니다.

실질적인 결론은 간단합니다: 사용 사례에 따라 선택하세요. MAUI 카메라 UI는 Barkoder에 적합합니다; 파일, 스트림, PDF, 생성, 혹은 MAUI가 아닌 .NET 표면은 IronBarcode에 적합합니다. 많은 프로덕션 시스템에서 둘 다 실행됩니다 — 모바일 클라이언트에는 Barkoder, 서버에는IronBarcode— 그리고 두 개는 하이브리드로 자연스럽게 통합됩니다.

자주 묻는 질문

바코더 SDK란 무엇인가요?

Barkoder SDK는 C# 애플리케이션에서 바코드를 생성하고 판독하기 위한 .NET 바코드 라이브러리입니다. 개발자가 .NET 프로젝트용 바코드 솔루션을 선택할 때 평가하는 여러 대안 중 하나입니다.

바코더 SDK와 IronBarcode의 주요 차이점은 무엇인가요?

IronBarcode는 인스턴스 관리가 필요 없는 정적 상태 비저장 API를 사용하는 반면, Barkoder SDK는 일반적으로 사용하기 전에 인스턴스 생성 및 구성이 필요합니다. 또한 IronBarcode는 모든 환경에서 기본 PDF 지원, 자동 형식 감지, 단일 키 라이선싱을 제공합니다.

IronBarcode가 바코더 SDK보다 라이선스 취득이 더 쉬운가요?

IronBarcode는 개발 및 프로덕션 배포를 모두 포괄하는 단일 라이선스 키를 사용합니다. 따라서 SDK 키와 런타임 키를 분리하는 라이선싱 시스템에 비해 CI/CD 파이프라인 및 Docker 구성이 간소화됩니다.

IronBarcode는 바코더 SDK가 지원하는 모든 바코드 형식을 지원하나요?

IronBarcode는 QR코드, Code 128, Code 39, DataMatrix, PDF417, Aztec, EAN-13, UPC-A, GS1 등 30개 이상의 바코드 심볼로지를 지원합니다. 형식 자동 감지 기능은 명시적인 형식 열거가 필요하지 않음을 의미합니다.

IronBarcode는 네이티브 PDF 바코드 판독을 지원하나요?

예. IronBarcode는 별도의 PDF 렌더링 라이브러리가 필요 없이 BarcodeReader.Read("document.pdf")를 사용하여 PDF 파일에서 직접 바코드를 판독합니다. 페이지별 결과에는 페이지 번호, 바코드 형식, 값 및 신뢰도 점수가 포함됩니다.

IronBarcode는 바코더 SDK와 비교하여 일괄 처리를 어떻게 처리하나요?

IronBarcode의 정적 메서드는 상태 저장소가 없고 자연스럽게 스레드에 안전하므로 스레드별 인스턴스 관리 없이 Parallel.ForEach를 직접 사용할 수 있습니다. 어떤 가격대에서도 처리량 상한선이 없습니다.

IronBarcode 어떤 .NET 버전을 지원하나요?

IronBarcode는 단일 NuGet 패키지로 .NET Framework 4.6.2+, .NET Core 3.1 및 .NET 5, 6, 7, 8, 9를 지원합니다. 플랫폼 대상에는 Windows x64/x86, Linux x64, macOS x64/ARM이 포함됩니다.

.NET 프로젝트에 IronBarcode를 설치하려면 어떻게 해야 하나요?

NuGet을 통해 IronBarcode 설치: 패키지 관리자 콘솔에서 'Install-Package IronBarCode'를 실행하거나 CLI에서 '닷넷 추가 패키지 IronBarCode'를 실행합니다. 추가 SDK 인스톨러나 런타임 파일은 필요하지 않습니다.

Barkoder와 달리 IronBarcode를 구매하기 전에 평가할 수 있나요?

예. IronBarcode의 평가판 모드는 완전한 디코딩된 바코드 값을 반환하며 생성된 출력 이미지에만 워터마크가 표시됩니다. 구매를 결정하기 전에 자신의 문서에서 판독 정확도를 벤치마킹할 수 있습니다.

Barkoder SDK와 IronBarcode의 가격 차이는 무엇인가요?

개발 및 프로덕션을 포함하는 단일 개발자 영구 라이선스의 IronBarcode 가격은 $749부터 시작합니다. 가격 세부 정보 및 볼륨 옵션은 IronBarcode 라이선스 페이지에서 확인할 수 있습니다. 별도의 런타임 라이선스 요구 사항은 없습니다.

Barkoder SDK에서 IronBarcode로 마이그레이션하는 것은 간단하나요?

Barkoder SDK에서 IronBarcode로의 마이그레이션에는 주로 인스턴스 기반 API 호출을 IronBarcode의 정적 메서드로 대체하고, 라이선스 상용구를 제거하고, 결과 속성 이름을 업데이트하는 작업이 포함됩니다. 대부분의 마이그레이션에는 코드를 추가하기보다는 줄이는 작업이 포함됩니다.

IronBarcode는 로고가 있는 QR 코드를 생성하나요?

예. QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")는 구성 가능한 오류 수정을 통해 기본적으로 브랜드 이미지를 QR코드에 임베드합니다. ChangeBarCodeColor()를 통해 컬러 QR 코드도 지원됩니다.

Curtis Chau
기술 문서 작성자

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

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

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해