フッターコンテンツにスキップ
他のコンポーネントと比較する

BarcodeLib vs IronBarcode:C#バーコードライブラリの比較

Barkoder SDKとIronBarcode: モバイルカメラスキャン vs フル.NETバーコードカバレッジ

Barkoder SDKは、ほぼすべての"2026年最高のバーコードSDK"特集記事に登場し、比較表の中でZXing、Dynamsoft、Scandit、 IronBarcodeと並んで挙げられています。 .NETプロジェクト向けのバーコードソリューションを評価する開発者は、調査の初期段階でMatrixSight、DeBlurモード、マルチバーコード検出、DPMサポートについて知り、その真価に感銘を受ける。 NuGetでは、BarkoderはBarkoder.Xamarinという2つの公式.NETパッケージを提供しています。 どちらもモバイルのMAUIおよびXamarinアプリ用のカメラスキャンコンポーネントです。Barkoderが提供していないのは、一般用途 for .NETライブラリです: ASP.NET Core、コンソール、デスクトップ、サーバー、PDFのサポートはありません。 この比較はBarkoderとは何か、ネイティブドメインで何が強力なのか、そしてIronBarcodeが.NET開発者が通常持つ広範な要件をどのようにカバーするかを説明します。

Barkoder SDKについて理解する

Barkoderは、C/C++処理コアをベースに構築された商用バーコードスキャンSDKであり、iOSおよびAndroid向けのネイティブSDKでラップされています。 この製品は、リアルタイムのカメラスキャンを必要とするモバイル開発者を対象としています。倉庫作業員がスマートフォンで行うようなスキャンや、現場技術者がタブレットで行うようなスキャンです。 流通モデルはその目標を完全に反映している。

SDKは、iOS向けにはCocoaPods経由でSwiftおよびObjective-C API、Android向けにはMaven経由でKotlinおよびJava API、ハイブリッドモバイル向けにはReact Native、Flutter、Cordova、Capacitor用の公式プラグインを通じて配布されます。 .NETでは、Barkoderは2つの公式NuGetパッケージ、BarkoderViewカメラスキャンコントロールを提供します。

MAUIおよびXamarinの外では、.NETでBarkoderオプションはありません。 汎用Barkoder.NETパッケージはなく、ASP.NET Core、Azure Functions、AWS Lambda、Docker、Linuxサーバーのターゲットもなく、コンソール、ワーカーサービス、WPF、WinForms、Avalonia、Blazorのターゲットもなく、ファイルまたはストリーム入力モード、PDF読み込み、バーコード生成もありません。 MAUIまたはXamarinモバイルアプ​​プヘッドの外で for .NET作業では、Barkoderは該当しません。

Barkoder SDKの主なアーキテクチャ特性:

  • モバイル優先アーキテクチャ: iOSおよびAndroidのカメラパイプライン用に設計されています; すべての処理はデバイス上でC/C++コアを介して行われます。
  • .NET SurfaceはMAUI / Xamarinに限定: 公式のBarkoder.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 Modeは、物理的に損傷したバーコード、印刷状態が悪いバーコード、または照明条件が悪い状況で撮影されたバーコードを読み取るための独自の損傷回復技術を提供します。 マルチバーコード検出機能は、 1つのカメラフレーム内の複数のバーコードを同時にデコードするため、倉庫作業員は棚全体を一度にスキャンできます。 DPM(ダイレクト・パーツ・マーキング)スキャンは、Razorエッチングやドットピーニング処理された構成におけるDataMatrixなどのフォーマットをサポートしており、これは一般的なライブラリではうまく処理できないものです。 高密度フォーマットのサポートには、PDF417、Aztec、およびモバイルカメラで高い精度を実現するその他の2Dフォーマットが含まれます。

IronBarcodeを理解する

IronBarcodeは、あらゆる.NET環境において、バーコードの読み取りと生成というワークフロー全体を網羅するネイティブ.NETライブラリです。 これは、 .NETプラットフォームにおけるBarkoderの機能と同等の機能を持ち、サーバーおよびデスクトップ環境でのみ意味を持つ追加機能を備えています。

IronBarcodeはNuGet経由でインストールされ、完全にローカルで動作します。 バーコード処理中はネットワーク呼び出しは行われません。 エアギャップ環境、Azure Functions、Dockerコンテナ、AWS Lambda、そして.NET Framework 4.6.2から.NET 9までのすべて for .NETランタイムで動作します。静的APIモデルを採用しているため、管理すべきスキャナインスタンスがなく、ライフサイクルを追跡する必要もなく、同時呼び出しによるスレッドセーフティの問題もありません。

IronBarcodeの主な特徴:

  • .NETを完全にサポート: .NET Framework 4.6.2 以降、 .NET 6、7、8、および 9 をサポートします。 Windows、Linux、macOS、Docker、Azure、AWSで動作します -読み取りと生成:ファイル、ストリーム、PDFからのバーコード読み取りと、50種類以上のフォーマットでのバーコード生成の両方に対応
  • 静的API設計: BarcodeWriter.CreateBarcode()は管理状態を必要としない静的な呼び出しです
  • 機械学習を活用したエラー訂正:機械学習に基づく画像前処理パイプラインにより、破損、劣化、低品質のバーコードを処理します。 -ネイティブPDFサポート:中間的な画像抽出なしに、PDFドキュメントから直接バーコードを読み取ります
  • .NETエコシステムとの完全な統合: ASP.NET Coreの依存性注入、async/await、ミドルウェア、ホスティングパターンと互換性があります。

機能比較

以下の表は、Barkoder SDKとIronBarcodeの基本的な違いをまとめたものです。

フィーチャー Barkoder SDK IronBarcode
.NET / C# サポート MAUI / XamarinカメラUIのみ フル — すべて for .NETランタイム
NuGetパッケージ Plugin.Maui.Barkoder, Barkoder.Xamarin IronBarcode
バーコード読み取り はい、モバイルカメラです はい、ファイル、ストリーム、PDFなど。
バーコード生成 None フルバージョン — 50種類以上のフォーマット
PDF処理 None ネイティブ
サーバーサイドデプロイメント None フル — ASP.NET Core、Azure、Lambda、Docker
価格について モバイルSDKライセンス 永久ライセンスあり

詳細な機能比較

フィーチャー Barkoder SDK IronBarcode
読む
破損したバーコードの復旧 MatrixSight / DeBlur MLエラー訂正、ReadingSpeed.ExtremeDetail
複数バーコード検出 はい、カメラのフレームです ExpectMultipleBarcodes = true
DataMatrix / DPM のサポート はい はい — BarcodeEncoding.DataMatrix
QRコードの読み取り はい はい
PDF417 はい はい
アステカ はい はい
Code128、Code39、EAN はい はい、50種類以上のフォーマットに対応しています。
自動フォーマット検出 はい はい
世代
バーコード生成 None フルバージョン - 全フォーマット
QRコード生成 None QRCodeWriter.CreateQrCode()
QRコード上のロゴ/ブランディング None AddBrandLogo()
プラットフォーム
.NET / C# MAUI / XamarinカメラUIのみ フル
iOS(ネイティブ) はい(プライマリ) .NET MAUI経由
Android(ネイティブ) はい(プライマリ) .NET MAUI経由
Windows / Linux / 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 for .NETサーフェスはMAUIとXamarinカメラUIに限定されています; IronBarcodeは.NETエコシステムの残りをカバーします。

Barkoder SDKのアプローチ

Barkoderの公開されたプラットフォームリストは、iOSネイティブ(Swift / Objective-C)、Androidネイティブ(Kotlin / Java)、React Native、Flutter、Cordova、Capacitor、.NET MAUI、Xamarin、およびWeb(WASM)です。 .NETでは特に、それがBarkoder.Xamarinにマップされます。 ASP.NET Core、Azure Functions、AWS Lambda、Docker、Linuxサーバー、WPF、WinForms、Avalonia、Blazorは存在しません。 SDKのアーキテクチャは、モバイルデバイス上のライブカメラパイプラインを中心に構築されています。ファイルベースの入力モード、ストリームAPI、バッチ処理パス、サーバーサイド実行モデルは搭載されていません。

MAUIまたはXamarinモバイルアプリの外で for .NET作業—バックエンドAPI、ワーカーサービス、デスクトップツール、PDFドキュメントパイプライン—Barkoderはパスを提供していません。 サーバーで使用する非同期APIサーフェスはなく、依存性注入統合もなく、AzureやAWS Lambdaのサポートもなく、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を調査するきっかけとなる最も一般的な機能です。 BarkoderのMatrixSightとDeBlurモードは、物理的なラベルが摩耗したり、濡れたり、部分的に見えなくなったりする物流や製造現場のシナリオ向けに推奨されています。

Barkoder 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は、大部分のきれいまたは軽く損傷したバーコードを処理し、より高速です。 ExtremeDetailを予約してください —これは徹底的ですが、かなり遅いです。 読み取りが難しいバーコードに関する詳細なガイダンスについては、 IronBarcodeの読み取りに関するドキュメントを参照してください。

複数バーコード検出

マルチバーコード検出は、2つのプラットフォーム間で直接マッピングされます。Barkoderは、カメラフレーム内の複数のコードを処理します。 IronBarcodeは、文書または画像ファイル内の複数のコードを処理できます。

Barkoder SDKのアプローチ

Barkoderのマルチバーコードモードは、1枚のカメラフレームから複数のバーコードを同時に検出・デコードします。 倉庫の現場では、作業員が棚の上からスマートフォンをかざすと、すべてのバーコード値を一度に受信できる。 これは、スキャン開始前に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サーバーサイドアプリケーションでは、マルチバーコードのシナリオは通常、出荷追跡バーコードと製品バーコードが記載された請求書、または1ページに複数のアイテムが記載された出荷マニフェストなどのドキュメントに関連しています。 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は、製造、ヘルスケア、自動車といった業界向けに、これらのフォーマットを重視しています。

Barkoder SDKのアプローチ

Barkoderは、Razorエッチングおよびドットピーニングされたマーキングに対応するDPM構成によるDataMatrix読み取りをサポートしています。 このSDKは、PDF417、Aztec、およびその他の高密度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外で for .NETプロジェクトの要件

最も一般的なシナリオは単純明快です。開発者またはチームが.NETアプリケーション( ASP.NET Core、Windowsサービス、コンソールツール、デスクトップアプリなど)を構築している際に、調査中にBarkoderに出会うというものです。 彼らはMatrixSight、DeBlur、マルチバーコード検出について読み、その機能を魅力的だと感じ、次に.NETサーフェスがBarkoder.Xamarinであることを発見します — どちらもモバイルカメラUI用のみです。 このような状況にあるチームは、Barkoderから離れることはありません。 彼らは最初から自社のプラットフォームに最適なツールを特定している。 IronBarcodeは、Barkoderがモバイル向けに満たす要件に対する.NETのソリューションです。

サーバーサイドのバーコード処理ワークフロー

一部のチームは、まずモバイルスキャンアプリ(Barkoderやその他のモバイルSDKなど)を使用してバーコード処理ワークフローのプロトタイプを作成し、その後、そのワークフローをサーバー側で再現または拡張する必要が生じます。一般的な例としては、APIエンドポイントを介してアップロードされたバーコード画像を処理する、文書管理システム内のPDF文書からバーコードを読み取る、スキャンされたラベルアーカイブをバッチ処理するなどが挙げられます。 Barkoderにはサーバーサイドのデプロイメントモデルがないため、これらのワークフローはどれも実現できません。 IronBarcodeは、 ASP.NET Core、Azure Functions、Docker、AWS Lambdaといったすべてのプラットフォームで、同じ静的APIを使用してこれら全てに対応します。

バーコード生成要件

物流、在庫管理、コンプライアンス関連 for .NETアプリケーションを開発するチームは、バーコードの読み取りがワークフローの半分に過ぎないことに気づくことが多い。 バーコードの生成(ラベルの印刷、書類へのQRコードの埋め込み、出荷明細書の作成など)も同様に重要です。 Barkoderは設計上、読み取り専用です。 発電能力はありません。 プロジェクトの範囲が単なる閲覧にとどまらず拡大する場合、ワークフローの両側面をカバーするライブラリを使用することで、2つ目の依存関係を統合する必要がなくなります。 IronBarcodeは、一貫したAPIを通じて、50種類以上のフォーマットに対応した読み取りと生成の両方を提供します。

PDF文書処理

.NETEnterpriseアプリケーションでは、請求書、出荷明細書、医療記録、コンプライアンス文書など、PDFドキュメントにバーコードが埋め込まれていることがよくあります。 Barkoderにはこのワークフローの概念がありません。 これはモバイルデバイスのカメラ入力用に設計されています。受信したPDF文書からバーコードを読み取り、ビジネスロジックのためにバーコードデータを抽出し、文書アーカイブ全体でバーコードの存在を確認する必要があるチームは、ネイティブPDFサポートを備えたライブラリを必要とします。 IronBarcodeは、中間的な画像抽出を行うことなく、PDFから直接バーコードを読み取ります。

価格設定と導入の予測可能性

BarkoderのモバイルSDKの価格設定は、モバイルアプリケーションおよび配布モデルに基づいて構成されています—サブスクリプション、アプリごと、およびモバイル展開に結びついたデバイスごとの階層。 MAUIまたはXamarinの外で.NET作業をしているチームにとって、その価格設定モデルは該当しません。なぜなら、SDKはそこで動作しないからです。 IronBarcodeが適切なツールである場合、価格設定モデルは簡潔です: 永久ライセンスであり、リクエストごとの料金がなく、処理されるバーコード数に制限がありません。

一般的な移行の考慮事項

モバイルカメラ入力からファイルベース入力へ

Barkoderベースのモバイルスキャンプロトタイプを実装済みで、その機能を.NETで再現する必要があるチームは、入力モデルがカメラフレームからファイル、ストリーム、またはバイト配列に変更されることに気づくでしょう。 IronBarcodeは、ファイルパス文字列、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が適しています。 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の追加機能

IronBarcodeは、Barkoderのモバイル機能と直接同等の機能に加え、 .NETサーバーおよびデスクトップ環境に特化した機能も提供します。

  • QRコードロゴ埋め込み: QRCodeWriter.CreateQrCode().AddBrandLogo()は生成されたQRコードの中央にブランド画像を追加します — マーケティングおよびパッケージングワークフローの一般的な要件です
  • PDFバーコード読み取りネイティブPDF入力とは、中間画像抽出が不要であることを意味します。 複数ページのPDFファイルは1回の通話でスキャンされます
  • 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 Lambdaデプロイメントターゲットに対してテストされています。 .NETエコシステムがクロスプラットフォームおよびクラウドネイティブのパターンへと進化を続ける中、クラウドへの依存、APIキー管理、ネットワーク遅延のないIronBarcodeの完全ローカル実行モデルは、最新 for .NETアプリケーションアーキテクチャの方向性に合致しています。

結論

Barkoder SDKとIronBarcodeは主に異なるドメインで動作します。 Barkoderは、iOSおよびAndroid向けに構築されたモバイルカメラスキャンSDKで、C/C++処理コア、ハイブリッドモバイル配信、NuGetでのMAUIおよびXamarinカメラUI用のBarkoder.Xamarinを備えています。 IronBarcodeはサーバー、デスクトップ、MAUIプログラム処理、クラウドデプロイメント用に作成されたネイティブ.NETライブラリで、標準パターンを通じてNuGet経由で配布され、.NETエコシステムに統合されています。 2つのライブラリは狭く重なります — 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は同じ基本的な機能—損傷に強い読み取り、マルチバーコード検出、DataMatrixおよび高密度フォーマットサポート—を提供し、.NETプラットフォーム全体でファイル、ストリーム、PDF入力用に実装されています。

実用的な結論は簡明です: 使用例で選択してください。 MAUIカメラUIはBarkoderに適合します; ファイル、ストリーム、PDF、生成、または非MAUIの任意 for .NETサーフェスはIronBarcodeに適合します。 多くのプロダクションシステムでは、モバイルクライアントにBarkoderを、サーバーにIronBarcodeを実行し、2つをハイブリッドとして自然に統合します。

よくある質問

Barkoder SDKとは?

BarCoder SDKは、C#アプリケーションでバーコードを生成および読み取るため for .NETバーコードライブラリです。これは、開発者が .NET プロジェクト用のバーコードソリューションを選択する際に評価するいくつかの選択肢の 1 つです。

Barkoder SDKとIronBarcodeの主な違いは何ですか?

IronBarcodeはインスタンス管理を必要としない静的なステートレスAPIを使用していますが、Barkoder SDKは通常、使用前にインスタンスの作成と設定が必要です。IronBarcodeはまた、ネイティブPDFサポート、自動フォーマット検出、およびすべての環境でのシングルキーライセンスを提供します。

IronBarcodeはBarkoder SDKよりもライセンスが簡単ですか?

IronBarcodeは単一のライセンスキーで開発環境と本番環境の両方をカバーします。これは、SDKキーとランタイムキーを分離するライセンスシステムと比較して、CI/CDパイプラインとDocker構成を簡素化します。

IronBarcode はBarkoder 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 はBarkoder SDKと比較してどのようにバッチ処理を処理しますか?

IronBarcodeの静的メソッドはステートレスで当然スレッドセーフであり、スレッドごとのインスタンス管理なしにParallel.ForEachを直接使用できます。どの価格帯でもスループットの上限はありません。

IronBarcode はど for .NETバージョンをサポートしていますか?

IronBarcodeは.NET Framework 4.6.2+、.NET Core 3.1、.NET 5、6、7、8、9を単一のNuGetパッケージでサポートしています。プラットフォーム・ターゲットには、Windows x64/x86、Linux x64、macOS x64/ARMが含まれます。

.NETプロジェクトにIronBarcodeをインストールするには?

NuGet経由でIronBarcodeをインストールする:パッケージマネージャーコンソールで'Install-Package IronBarCode'を実行するか、CLIで'dotnet add package 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コードに埋め込みます。カラーQRコードもChangeBarCodeColor()でサポートされています。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね