
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}");
}
}
}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 ClassImports 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これは、ライブカメラに対して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}")
NextImports 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このライブラリは完全にローカルで動作し、ネットワーク呼び出しもデータ送信も外部依存関係もありません。 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);netnetIronBarcodeのアプローチ
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 IfImports 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 IfReadingSpeed.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' 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 SubIronBarcodeのアプローチ
.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}")
NextImports 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ページ抽出なし、複数リクエストなし、バーコードごとのネットワークオーバーヘッドなし。 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)' Plugin.Maui.Barkoder — DataMatrix scanning in a MAUI ContentPage
BarkoderView.SetEnabledBarcodeTypes(New BarcodeType() { BarcodeType.DataMatrix })
BarkoderView.StartScanning(Me)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")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")サポートされているフォーマットと生成オプションの完全なリストについては、 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)' All of these call the same underlying pipeline
Dim results1 = BarcodeReader.Read("scan.png")
Dim results2 = BarcodeReader.Read(imageStream)
Dim results3 = BarcodeReader.Read(imageBytes)速度と精度のトレードオフ
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))Dim results = Await Task.Run(Function() BarcodeReader.Read(imageBytes, options))パフォーマンスのフォーマット仕様
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つをハイブリッドとして自然に統合します。
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
関連する記事


