IRONSOFTWAREHOME
IRONBARCODEの使用

Build a Barcode SDK C#: Generate, Read, and Scan Barcodes with One Library

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

ほとんどのバーコードSDKのC#プロジェクトは、同じような悩みから始まります。それは、生成、読み取り、エクスポートのための別々のライブラリをつなぎ合わせ、その後、バーコードの種類やプラットフォーム間の互換性の問題に取り組むことです。 IronBarcodeは、そうした摩擦を完全に解消します。 これは単一 for .NETライブラリで、リニアバーコードやQRコードの作成から、不完全な画像やPDFファイルからの複数のバーコードのスキャンまで、開発者が専用のバーコードスキャナSDKに通常求めるすべてのバーコード操作を処理します。

この記事では、 IronBarcodeをバーコードSDKプロジェクト向けのオールインワンソリューションたらしめている主要な機能、すなわちバーコード画像の生成、ファイルからのバーコードデータの読み取り、そして本番環境での精度を実現するための高度なスキャン設定の構成について解説します。 以下のコード例はすべて、 .NETコンソールアプリケーションでそのまま実行できます。

NuGetNuGetでインストール

PM > Install-Package BarCode

Install IronBarcode by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.

.NETプロジェクトにおいて、バーコードSDKはどのような機能を持つべきでしょうか?

高性能なバーコードスキャナーSDKは、バーコードの生成、画像や文書からのバーコードデータの読み取り、そして実際のスキャン品質の問題への対処という、3つの重要な操作を網羅する必要があります。 最適なバーコードリーダーSDKは、それぞれに個別のライブラリを必要とせずに、幅広いシンボル体系をサポートしています。

IronBarcodeは、リニアバーコード(Code 128、Code 39、UPC-A、UPC-E、EAN-8、EAN-13、GS1 DataBar)と2Dバーコード(QRコード、Data Matrix、PDF417、Aztec、MaxiCode)の両方をサポートしています。 この対応範囲により、 .NET開発者は、小売店のUPC-Aラベルから倉庫のQRコードまで、あらゆるものを単一のバーコードDLLを使用して処理でき、追加の依存関係やプラットフォーム固有のネイティブバイナリは不要になります。 無料トライアルライセンスでは、 30日間すべての機能にフルアクセスできます。

このライブラリは、Windows、macOS、Linuxの各オペレーティングシステムで動作し、 .NET MAUIおよびAndroidアプリの展開をサポートしています。 また、ビジネス文書内にバーコードを埋め込む必要があるシナリオに対応するため、Crystal Reportsなどのレポート作成ツールとの連携も可能です。 プロジェクトがコンソールアプリであろうと、 .NET MAUIモバイルスキャナーであろうと、数千枚の画像を処理するサーバーサイドバーコードリーダーであろうと、同じバーコードスキャナーSDK APIですべてに対応できます。

How Can Developers Generate Barcode Images in C#?

BarcodeWriter.CreateBarcode メソッドは、文字列値と指定されたシンボル体系から、単一の呼び出しでバーコード画像を生成します。 返された GeneratedBarcode オブジェクトは、PNG、BMP、JPEG、PDF、HTML ファイルとして保存したり、SVG などのベクター形式でエクスポートしたりできます。

using IronBarCode;
// Generate a Code 128 barcode image from string data
var barcode = BarcodeWriter.CreateBarcode("PKG-2025-88421", BarcodeEncoding.Code128);
barcode.AddAnnotationTextAboveBarcode("Shipping Label");
barcode.AddBarcodeValueTextBelowBarcode();
barcode.ResizeTo(500, 150);
barcode.SaveAsPng("shipping-label.png");
// Create a styled QR code with a logo
var qrCode = QRCodeWriter.CreateQrCode("https://example.com/track/88421", 300);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkSlateGray);
qrCode.SaveAsPng("tracking-qr.png");

生成されたバーコード画像

Barcode SDK C# を構築: 1 つのライブラリでバーコードを生成、読み取り、スキャンする: 画像 1 - 出力バーコードと QR コード画像

BarcodeWriterクラスは、文字列、バイト配列、またはストリームとしてデータを受け入れるため、さまざまなデータソースに対応できる柔軟性を備えています。 BarcodeEncoding 列挙型はシンボルを制御します。QR コードの場合は BarcodeEncoding.QRCode を、UPC-A 小売ラベルの場合は BarcodeEncoding.UPCA を渡します。または、サポートされているバーコード形式のいずれかを指定します。 スタイル付きQRコードの場合、専用のQRCodeWriterクラスはエラー訂正レベルとロゴの埋め込みをサポートしており、ブランドコードを簡単に作成できます。

GeneratedBarcodeオブジェクトは、余白、色、注釈テキストなどのバーコードプロパティをカスタマイズするためのメソッドも提供します。 バーコード画像は、ラスター画像形式(PNG、BMP、JPEG)およびベクター形式でエクスポートできるほか、Webアプリケーション向けにHTMLに直接レンダリングすることも可能です。 その他の出力オプションについては、バーコード作成例を参照してください。

バーコードリーダーは画像ファイルとPDFファイルでどのように動作するのですか?

BarcodeReader.Read メソッドは、画像ファイルのパス、バイト配列、ビットマップ、またはストリームを受け取り、入力に含まれるすべてのバーコードを含む BarcodeResults コレクションを返します。 各 BarcodeResult には、バーコード値、エンコードタイプ、ページ番号、バイナリデータ、およびバーコード画像領域が含まれます。

using IronBarCode;
// Use the barcode reader to decode all barcodes from an image file
var results = BarcodeReader.Read("multiple-barcodes.png");
foreach (var result in results)
{
    Console.WriteLine($"Type: {result.BarcodeType} | Value: {result.Value}");
}
// The barcode reader also scans multi-page PDF documents
var pdfResults = BarcodeReader.ReadPdf("invoice-batch.pdf");
foreach (var item in pdfResults)
{
    Console.WriteLine($"Page {item.PageNumber}: {item.Value}");
}

バーコード読み取り出力

Barcode SDK C# を構築: 1 つのライブラリでバーコードを生成、読み取り、スキャンする: 画像 2 - バーコードデータ出力を読み取る

バーコードリーダーは、デフォルトで主要なシンボル体系すべてに対応したバーコード認識機能を備えており、開発者がスキャンするバーコードの種類を指定する必要なく、直線型バーコード、2次元バーコード、QRコードを自動的に検出します。 PDFをスキャンする際、ReadPdfはすべてのページを処理し、ページ番号を付加した結果を返します。これは、文書のインデックス作成やアーカイブ作業に最適です。

コレクション内の各 BarcodeResult は、デコードされたバーコードデータを文字列とバイト配列の両方として提供します。 これは、データマトリックスコードやバイナリデータをエンコードするその他のシンボル体系を処理する際に特に役立ちます。 バーコードリーダーの結果には、バーコードの位置座標も含まれており、アプリケーションがソース画像ファイルで各コードが表示された場所をマッピングできるようにします。画像のフォルダ全体でのバッチ処理を実行する場合、マルチスレッドが有効なパラレル実行用のファイルパスのIEnumerable<string>をバーコードリーダーに渡します。

バーコードスキャナーSDKは、実際の画像品質をどのように処理できるのか?

倉庫のカメラ、モバイル端末で撮影した画像、スキャンした文書など、現実世界のバーコード画像は、ピクセル単位で完璧であることは稀である。 BarcodeReaderOptions クラスは、スキャン速度、想定されるシンボル体系、画像補正フィルター、マルチスレッドバッチ処理などを細かく制御できるため、破損したり歪んだりした入力に対しても非常に正確なバーコード認識を実現できます。

using IronBarCode;
// Configure the barcode reader for challenging, real-world image quality
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode,
    Multithreaded = true,
    MaxParallelThreads = 4,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter()
    }
};
// Scan multiple barcodes from a noisy image with high accuracy
var results = BarcodeReader.Read("camera-capture.jpg", options);
foreach (var barcode in results)
{
    Console.WriteLine($"Detected: {barcode.BarcodeType} &mdash; {barcode.Value}");
}

ノイズの多いバーコード画像スキャンの出力

Barcode SDK C# を構築: 1 つのライブラリでバーコードを生成、読み取り、スキャンする: 画像 3 - ノイズの多いバーコード画像をスキャンしたときの出力例

ExpectBarcodeTypesを特定のシンボル体系のサブセットに設定する(すべての種類をスキャンするのではなく)ことで、速度と精度の両方が劇的に向上します。 ReadingSpeed列挙型には、Faster、Balanced、Detailed、ExtremeDetailの4つのレベルがあり、開発者は処理時間とバーコード認識の精度とのトレードオフを調整できます。 ImageFilterCollectionは、スキャンエンジンがバーコード画像を処理する前に、シャープ化、コントラスト調整、適応型閾値処理などの前処理フィルタを適用します。

ExpectMultipleBarcodesフラグは、最初の一致が見つかった後もスキャンを継続するようにエンジンに指示するもので、1枚のラベルや文書ページ上の複数のバーコードをスキャンする必要がある場合に不可欠です。 Multithreaded = true と組み合わせることで、このライブラリはバッチ処理をCPUコア全体に分散させ、高スループットのスキャンシナリオを実現します。 これらの設定についてさらに詳しく知りたい場合は、バーコード読み取りチュートリアルで、すべての設定オプションとサンプルコードが解説されています。

どのようなバーコードの種類とプラットフォームがサポートされていますか?

IronBarcodeは、小売、物流、医療、およびEnterpriseアプリケーションにおいて最も広く使用されているバーコードシンボル体系を網羅しています。 以下の表は、サポートされているバーコードの種類と対象プラットフォームをまとめたものです。

カテゴリ対応フォーマット
リニアバーコードコード 128、コード 39、コード 93、UPC-A、UPC-E、EAN-8、EAN-13、GS1 データバー、ITF、MSI、Codabar
2次元バーコードQRコード、データマトリックス、PDF417、アステカ、マキシコード
画像フォーマットPNG、JPEG、BMP、GIF、TIFF、SVG
文書フォーマットPDF(複数ページ)、HTML
.NETプラットフォーム.NET 8/7/6、 .NET Core、 .NET Framework 4.6.2以降、 .NET Standard 2.0以降
アプリの種類コンソール、Windows Forms、WPF、 ASP.NET、 .NET MAUI、 Blazor
オペレーティングシステムWindows、macOS、Linux、Android( .NET MAUI経由)

このライブラリは、単一のNuGetパッケージ(BarCode)としてインストールすることも、直接ダウンロードしてスタンドアロンのバーコードDLLとしてインストールすることもできます。 ネイティブSDKへの依存関係は一切不要で、バーコードスキャナSDK全体がマネージド.NETコードとして提供されます。 NuGetパッケージマネージャを通じてVisual Studioにインストールするか、CLIで.NET add package BarCodeを実行します。 DLLレベルの制御が必要な導入シナリオの場合、 IronBarcode DLLのダウンロードには、手動での統合が可能なZIPパッケージが提供されます。

IronBarcodeは、Crystal Reportsとの連携や、組み込みバーコード生成が必要なその他のレポート作成ツールもサポートしています。 .NET MAUIおよびAndroidアプリ開発の場合、バーコードスキャナSDKはプラットフォーム固有のカメラSDKを必要とせずにクロスプラットフォームのバーコード読み取り機能を提供します。デバイスのカメラで撮影した画像ファイルをバーコードリーダーに渡すだけで済みます。 .NET MAUIバーコードスキャナのチュートリアルでは、Android の権限設定やモバイルスキャン用のサンプルコードなど、 .NET MAUI のワークフローについて詳しく解説しています。

ここからどこへ行くべきか

IronBarcodeは、 .NET開発者向けに、SDKレベルのプロジェクトに必要なバーコード生成、読み取り、バッチスキャン、エクスポート機能をすべて備えた完全なバーコードライブラリを提供します。複数のパッケージを管理する複雑さから解放されます。 最新バージョンでは、機械学習を活用した画像前処理機能と、PDFのバッチ処理のためのReadPdfsメソッドが追加され、単一のライブラリでできることの限界をさらに押し広げています。

無料トライアルを開始して、ウォーターマークや制限なしで、ご自身のプロジェクトで全ての機能をテストしてください。 本番環境の準備が整ったら、IronBarcode のライセンスオプションを探り始めてください。個々の開発者向けには無料の Iron Software のエンジニアリングチームからのサポートが含まれた$999からスタートします。

最初のステップ:
arrow pointer
Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。