IRONSOFTWAREHOME

C#を使用して画像からBarCodeを読み取る方法

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 2026年6月4日

IronBarcodeは、BarcodeReader.Read()を使用してC#で画像からバーコードを1行のコードで読み取り、PNG、JPEG、GIF、BMP、TIFF、SVGなどの複数の画像形式をサポートし、パフォーマンスと精度を向上させるためにカスタマイズ可能なオプションを提供します。

IronBarcode の主な機能の 1 つは、複数の画像形式でバーコードをすぐに読み取る能力です。 現在、IronBarcode がサポートしている画像形式は次の通りです:

  • スケーラブル・ベクター・グラフィック (SVG)
  • ジョイントフォトグラフィックエキスパーツグループ (JPEG)
  • ポータブル・ネットワーク・グラフィックス (PNG)
  • グラフィックス・インターチェンジ・フォーマット (GIF)
  • タグ付画像ファイル形式 (TIFF)
  • ビットマップ画像ファイル (BMP)

これはオープンソースライブラリ、IronDrawing により可能です。 サポートされているバーコード形式の完全なリスト(1Dと2Dの両方のタイプを含む)については、当社の包括的なドキュメントを参照してください。

クイックスタート:画像から数秒でBarCodeを読み取る

ただ一つの簡単な呼び出しで、IronBarCode.BarcodeReader.Read()を使用して、PNG、JPEG、GIF、BMP、TIFFなどの画像ファイル形式から直接バーコードデータを抽出できます。 複雑なセットアップなしですぐに始まります - 結果が即座に得られます。

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2このコード スニペットをコピーして実行します。

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png");
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronBarcode を使い始めましょう無料トライアル
    arrow pointer

画像から直接 BarCode を読み取るにはどうすればよいですか?

IronBarcodeを使ったバーコードの読み取り方法はこちらです。 PDF 処理やバッチ操作の高度なテクニックを含む、reading barcodes in C# / .NET の包括的なチュートリアルについては、詳細ガイドをご覧ください:

using IronBarCode;
using System;

var myBarcode = BarcodeReader.Read(@"image_file_path.jpg"); //image file path

foreach (var item in myBarcode)
{
    Console.WriteLine(item.ToString());
}
画像からのバーコード読み取りをテストするための、ファインダーパターン付きサンプル QR コード
サンプルテストQRコード
画像ベースのバーコード読み取りをテストするための、白背景に黒い縦線のサンプルバーコード
サンプルテストバーコード
サンプルのバーコード値が何なのか知りたいですか?コードスニペットで試してみてください!

IronBarcode を使用するには、まず Microsoft Visual Studio NuGet パッケージマネージャーを通じて IronBarcode ライブラリをプロジェクトにインストールする必要があります。以下の画像に示されています。 これにより、IronBarcodeのBarcodeReader.Read()メソッドにアクセスし、バーコード画像を直接読み取ることが可能になります。

IronBarcodeは、ファイル名文字列、またはファイルパス文字列をメソッドのパラメーターとして指定することで、プロジェクト内に既に含まれている画像ファイルを読み取るためにBarcodeReader.Read()を使用するだけで利用者にシンプルさを提供します。 メソッド内でファイルパスを指定する際は、複数のエスケープ文字""をファイルパス文字列に追加するのを避けるために、逐号文字列リテラル"@"を使用するのがベストプラクティスです。

バーコード値をValues()メソッドを付加します。

コンソールに結果を出力するには、Console.WriteLine()メソッドを呼び出します。

IronBarcodeは、1次元バーコード形式(QRCode)を様々な画像形式で読み取ることができます。

より良いパフォーマンスのために BarCode リーダー オプションを設定するにはどうすればよいですか?

バーコードリーディングが遅すぎますか? 画像でバーコードが小さすぎて、IronBarcode が読み取れないですか? 画像の特定の領域のみを読み取りたいですか? バーコードが混在している画像で特定の種類のバーコードのみを読み取りたいですか? 全体の読み取りパフォーマンスを改善したいですか?

BarcodeReaderOptionsにより、ユーザーはバーコードリーダーの動作を調整して、これらすべての問題に対処できます。 バーコードリーダーオプションの設定についての詳しい例は、当社の包括的なガイドをご覧ください。以下のセクションではBarcodeReaderOptionsで利用可能な調整可能なプロパティを一つずつ説明します。

画像のどの領域を読み取るかを指定するにはどうすればよいですか?

IronSoftware.Drawing.CropRectangleタイプのプロパティです。 これは読み取りパフォーマンスの向上に役立ちます。なぜなら、読み取り範囲が指定されたため、バーコードリーダーが画像全体をスキャンしてバーコードを探すことを避け、読み取りの精度も向上します。 最適なパフォーマンスを得るためのクロップ・リージョンの指定方法については、こちらをご覧ください。

Rectangleタイプのオブジェクトをインスタンス化し、長方形の座標、幅、および長さを引数として指定します。 測定単位はピクセル(px)です。

// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x: 100, y: 100, width: 300, height: 300);
var options = new BarcodeReaderOptions()
{
    CropArea = cropArea
};

より速く読み取るには、どのバーコードタイプを指定すればよいですか?

デフォルトでは、IronBarcode でサポートされているすべてのバーコードが画像でスキャンされます。 しかし、ユーザがどのような種類のバーコードが利用可能か、または画像で読み取りたいかを知っている場合、特定の種類のバーコードのみを読み取るようにこのプロパティを設定すると、バーコードリーダはバーコードを解釈して読み取るためにバーコードのコレクションを反復する必要がなくなるため、読み取りパフォーマンスと精度が大幅に向上します。

このプロパティを使用するには、BarcodeEncoding列挙体のフィールドの1つに設定します。 以下に、IronBarcode がサポートしているすべてのバーコードタイプの例を示します。

// Example: Expect only QR codes and Code128
var options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};

いつ複数の BarCode 読み取りを無効にすべきですか?

IronBarcode は画像内の利用可能なすべてのバーコードをデフォルトでスキャンします。これには画像ファイル全体のスキャンが含まれ、読み取ったバーコード値を文字列配列に追加します。 しかし、ユーザーが画像ファイル内の複数のバーコードを読み取りたくない場合は、このプロパティを false に設定できます。これにより、バーコード値が見つかった時点でバーコードリーダーはスキャンを中止します。 これもまた、IronBarcode のパフォーマンスと読み取り速度の改善につながります。 複数の BarCode を読み取るの詳細については、専用のガイドを参照してください。

画像フィルタはバーコード認識をどのように向上させますか?

BarcodeReaderOptionsに追加できるプロパティの一つとして、画像フィルターのコレクションがあります。 画像フィルタは IronBarcode に入力される生の画像を前処理するために重要です。 ImageFilterコレクションを初期化して指定する必要があります。 フィルター アプリケーションを含む、画像補正技術に関する包括的なガイダンスについては、チュートリアルをご覧ください。

パフォーマンスを向上させるためにスレッドを最適化するにはどうすればよいですか?

IronBarcode はユーザーにパラレルスレッド実行量を有効化および調整することを可能にし、これによりプロセスの速度と効率が向上します。 並列スレッドとは、異なるプロセッサコアで同時に複数のスレッドを実行することを意味します。 IronBarcodeのMaxParallelThreadプロパティのデフォルト値は4です。利用者は、マシンの能力とリソース量に基づいてそれらを調整できます。

マルチスレッド処理を有効にしますか?

このプロパティは、IronBarcode が複数の画像を並行して読み取ることを可能にします。 #Multithreadedのデフォルトはtrueであり、そのため、バッチバーコード読み取りタスクのパフォーマンスを向上させるために複数のスレッドが自動的に管理されます。

なぜ誤検出を削除する必要があるのでしょうか

このプロパティは偽陽性バーコード読み取りを除去します。 偽陽性バーコード読み取りは、バーコード値の誤読を意味するが、有効として識別されます。 これはシーケンシングプロセスでのエラーやバーコードラベリングや準備プロセスでのエラーにより起こる可能性があります。 したがって、RemoveFalsePositiveをtrueに設定することで、誤検知のバーコード読み取りを排除し、バーコード読み取り精度を向上させます。 しかし、ユーザーが精度の代わりにパフォーマンスを選ぶ場合、このプロパティを false に設定すると助けになるでしょう。このプロパティのデフォルト値は true です。

MinScanLinesは検出精度にどのような影響を与えますか?

MinScanLinesは、バーコード結果が有効と見なされるために一致する必要があるスキャンラインの最小数を設定します。 デフォルト値は 2 です。この値を大きくすると誤検出は減りますが、薄かったり品質の低い BARCODE が検出されなくなる可能性があります。 感度を1に下げると、ノイズが発生するリスクはあるものの、読み取りにくいBARCODEに対する感度が向上します。

どのようなスキャン モードがさまざまな使用ケースで利用できますか?

IronBarcode が画像内でバーコードをスキャンし検出する方法を定義します。

  • Auto: 自動画像前処理と最適なリーダーオプションの設定でバーコードを読み取ります。 最良の結果とパフォーマンスのために推奨されます。
  • OnlyDetectionModel: 画像をスキャンしてバーコードを探し、それらの位置をIronSoftware.Drawing.PointFの配列として返します。 このモードは検出されたバーコードを読みません; それはそれぞれのバーコードの位置のみを返します。
  • MachineLearningScan: 機械学習検出を使用して画像をスキャンし、バーコードを読み取ります。
  • OnlyBasicScan: 機械学習検出、画像の自動前処理、またはリーダーオプションの設定なしでバーコードを読み取ります。 このオプションは、IronBarCode.Slimと一緒に単体で使用できます。

読み取り速度の設定は精度にどのように影響しますか?

名前が示すように、SpeedプロパティはIronBarcodeリーダーのパフォーマンスをさらに最適化することを可能にします。 RemoveFalsePositiveプロパティに似ており、このプロパティを調整することで精度を犠牲にしてパフォーマンスを向上させます。 読み取り速度オプションの詳細な検討、性能のベンチマークを含めては、詳細なガイドをご覧ください。それは下記のように4レベルを持つReadingSpeedの列挙体を受け入れます。

  • Faster: 最も高速なバーコード読み取りを可能にしますが、精度が下がります。 このプロセスは画像の前処理をスキップし、しばしば空のバーコード結果をもたらします。 この設定を使用するのは、入力画像がシャープで明確な場合のみです。
  • Balanced: この設定はSpeedプロパティに推奨されます。 それは精度と読み取りパフォーマンスのバランスをとり、画像に軽い処理を試みて、バーコードエリアを明確にし、バーコードリーダーが検出できるようにします。 ほとんどの場合、この設定はIronBarcodeがバーコード画像を読み取り、正確な出力を生成するのに十分です。
  • Detailed: 設定ReadingSpeed.Detailedの使用を検討できます。 IronBarcode は中程度の処理を画像に行い、バーコードエリアをさらに明確にして、バーコードリーダーが検出できるようにします。 この設定は、小さなまたはあまり鮮明でないバーコード画像を検出するのに非常に便利です。
  • ExtremeDetail: この設定は最もCPU集約的なプロセスであるため、最もおすすめしません。 重い処理がバーコード画像に施され、リーダーがバーコードを読み取るようになります。 ユーザーはこの設定を選ぶ前にイメージ前処理を行うこと/画像にフィルタを適用することを推奨されます。

Code39拡張モードはいつ使用すべきですか?

この設定により、Code39 型バーコードは拡張モードで読み取られ解釈され、完全な ASCII 文字セットが適用されます。 UseCode39ExtendedModetrueに設定すると、Code39バーコードのより正確な読み取りを可能にします。

カスタム オプションを使用して高度な BarCode 読み取り機能を実装するには?

パフォーマンスや精度を向上させるためであれ、ユーザーが微調整できるすべてのオプションを学んだので、コードに適用する方法を紹介しよう。 以下のコードスニペットはBarcodeReaderOptionsの包括的な使用法を示しています。

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Linq;

// Create custom reader options
var options = new BarcodeReaderOptions()
{
    // Specify expected barcode types for better performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128 | BarcodeEncoding.Code39,
    
    // Define specific area to scan (x, y, width, height in pixels)
    CropArea = new Rectangle(100, 100, 500, 400),
    
    // Set reading speed to balance accuracy and performance
    Speed = ReadingSpeed.Balanced,
    
    // Enable multithreading for better performance
    Multithreaded = true,
    MaxParallelThreads = 4,
    
    // Remove false positives for accuracy
    RemoveFalsePositive = true,

    // Minimum scan lines that must agree for a valid result (default 2)
    MinScanLines = 1,

    // Enable Code39 extended mode if needed
    UseCode39ExtendedMode = true,
    
    // Set scan mode
    ScanMode = BarcodeScanMode.Auto,
    
    // Add image filters for better recognition
    ImageFilters = new ImageFilterCollection() { 
        new SharpenFilter(),
        new InvertFilter(),
        new ContrastFilter()
    }
};

// Read barcodes with custom options
var results = BarcodeReader.Read(@"C:\path\to\your\barcode-image.png", options);

// Process results
if (results.Any())
{
    foreach (var barcode in results)
    {
        Console.WriteLine($"Barcode Type: {barcode.BarcodeType}");
        Console.WriteLine($"Value: {barcode.Value}");
        Console.WriteLine($"Position: {string.Join(", ", barcode.Points.Select(p => $"({p.X}, {p.Y})"))}");
        Console.WriteLine("---");
    }
}
else
{
    Console.WriteLine("No barcodes found in the image.");
}
C#

コードスニペットから、BarcodeReaderOptionsのプロパティを決定して調整する必要があることがわかります。 初期化されたBarcodeReaderOptionsのすべての設定が適用されます。

BarCodeが認識されないという問題が発生した場合、当社のトラブルシューティングガイドでは、一般的な問題の解決策とバーコードスキャンの精度を高めるためのヒントを提供しています。

よくある質問

C# での BarCode 読み取りに対応している画像形式は?

IronBarcodeはSVG(Scalable Vector Graphics)、JPEG、PNG、GIF、TIFF(Tagged Image File Format)、BMP(Bitmap Image File)など複数の画像フォーマットからのバーコード読み取りをサポートしています。この包括的なフォーマットのサポートはIronDrawingによって行われ、様々な種類の画像からシームレスにバーコードを抽出することができます。

たった1行のコードで、画像ファイルから BarCode を読み取るにはどうすればよいですか?

IronBarcodeを使用すると、1行のコードで画像からバーコードを読み取ることができます:var results = IronBarCode.BarcodeReader.Read("path/to/image.png");`.このシンプルなメソッド呼び出しは、複雑な設定をすることなく、PNG、JPEG、GIF、BMP、TIFFファイルからバーコードデータを自動的に検出して抽出します。

画像を読み取る際に、どの種類の BarCode を検索するかを指定できますか?

はい、IronBarcodeではBarcodeReaderOptionsのExpectBarcodeTypesプロパティを使ってバーコードタイプを指定することができます。このターゲットを絞ったアプローチにより、イメージで見つかると予想されるバーコード形式のみに焦点を当てることで、読み取りパフォーマンスが向上します。

画像内の特定の領域から BarCode を読み取ることはできますか?

もちろんです!IronBarcodeはCropAreaプロパティを提供し、バーコードが配置される画像内の特定の領域を指定することができます。この機能は、大きな画像やバーコードのおおよその位置が分かっている場合に特に便利で、処理速度を大幅に向上させます。

精度を高めるために、高度な読み取り設定を行うにはどうすればよいですか?

IronBarcodeは高度な読み取り設定を構成するためにBarcodeReaderOptionsクラスを提供しています。これには、バーコード検出感度、画像前処理、および困難な画像や特定のバーコードタイプを扱う際の精度を向上させるその他のパラメータをカスタマイズするためのオプションが含まれています。

C#開発者が画像からBarCodeを簡単に読み取れるのはなぜですか?

IronBarcodeはBarcodeReader.Read()メソッドを提供することでバーコードの読み取りを簡素化します。開発者はファイル名またはファイルパスをパラメータとして指定するだけでよく、C#アプリケーションにバーコード読み取り機能を統合するのは驚くほど簡単です。

What are the benefits of using multithreading in IronBarcode?

Multithreading in IronBarcode allows multiple barcodes to be processed simultaneously, improving the speed and efficiency of barcode reading, especially in batch processing tasks.

How do image filters improve barcode recognition in IronBarcode?

Image filters in IronBarcode enhance preprocessing by improving the clarity of barcode images. Filters like the `SharpenFilter` and `ContrastFilter` help optimize image quality for better recognition.

What is the `MinScanLines` property used for in IronBarcode?

The `MinScanLines` property sets the minimum number of scan lines that must agree on a barcode result for it to be considered valid, reducing false positives while ensuring detection accuracy.

How do I handle multiple barcode types with IronBarcode?

In IronBarcode, you can specify which barcode types to read by setting the `ExpectBarcodeTypes` property in `BarcodeReaderOptions`, which improves performance by focusing on specific barcode types.

準備はできましたか?

Nuget Downloads 2,422,100バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronBarCode」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

  1. IronBarcodeをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍してください
  2. Visual Studioのソリューションエクスプローラーで、Referencesを右クリックします。 "IronBarcode.dll"を選択します

ライセンス料金は$999から

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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。