C# でバーコードデータ形式を出力する方法

IronBarcodeを使ってC#でデータフォーマットを出力する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcodeはBarcodeImageBarcodeTypeBinaryValue、座標、寸法、ページ番号、方向、テキスト、値のプロパティを含む、バーコード読み取りからの複数の出力形式を提供します。 これらのフォーマットは、さまざまな使用例に対してプログラムで BarCode データを処理することを可能にします。

IronBarcodeは単にバーコードを読み取り、コンソールに値を表示するだけでなく、それ以上のものを提供します。 ユーザーが翻訳結果を処理できるように、いくつかの出力形式が用意されています。 これらの形式には、バーコード画像、バーコードタイプ、BinaryValue、座標、高さ、幅、ページ番号、バーコード、ページの向き、テキスト、および値といったプロパティが含まれます。

ユーザーはプログラム内でこれらのプロパティをさらに操作できます。 それでは、これらのプロパティの使用方法と、役立つユースケースを探ってみましょう。

クイックスタート: 一行でバーコードの値とタイプを読み取る

この例では、IronBarcodeを使用して画像からバーコードを読み取る方法を示しています。 素早く始めるのに最適です。より包括的な例については、BarCodeクイックスタートガイドをご覧ください。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronBarcode をインストールします

    PM > Install-Package BarCode

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

    var result = IronBarCode.BarcodeReader.Read("input.png");
    Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");
  3. 実際の環境でテストするためにデプロイする

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

利用可能な出力形式とその使用例とは

BarcodeResult はさまざまな有用なプロパティを保持します。 これらのプロパティは以下に列挙されます:

  • BarcodeImage
  • BarcodeType
  • BinaryValue
  • 座標、高さと幅
  • PageNumber
  • BarcodePageOrientation
  • テキストと値

各プロパティは、BarCode処理ワークフローにおいて特定の目的を果たします。 在庫管理システム、文書処理パイプライン、品質管理アプリケーションのいずれを構築する場合でも、これらのデータ形式は、さまざまなソースから BarCode を読み取るために必要な柔軟性を提供します。

バーコード画像を抽出して保存するにはどうすればよいですか?

IronBarcodeが画像を読み取ると、画像内で見つかったバーコードはAnyBitmap型のBarcodeImageプロパティとしてBarcodeResultに格納されます。 BarcodeImage プロパティには、見つかったバーコード画像が保存されます。 ユーザーは、このオブジェクトを取得して画像をさらに加工したり、永久コピーとして保存したりすることができます。 これは、画像から BarCode 画像を抽出するための追加コードを排除することで、効率性と使いやすさを提供します。

以下のコード・スニペットは、この出力形式の使用例を示しています:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();

foreach (BarcodeResult barcode in result)
{
    barcodeList.Add(barcode.BarcodeImage);
}

// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");
$vbLabelText   $csharpLabel

上のコード・スニペットは、この出力形式の使用例を示しています。 具体的には、PDF文書内で検出されたBarCodeから複数ページのTIFF画像を作成します。 最初に、サンプルPDFでバーコードをスキャンまたは検出します。 次に、BarcodeImageプロパティからの情報を保存するAnyBitmapのリストを作成します。 最後に、このリストを使用して、CreateMultiFrameTiffメソッドを使用してマルチページTIFFを生成します。 このテクニックは、複数ページのGIFファイルやTIFFファイルを処理するときに特に役立ちます。

ご注意 BarcodeResultBarcodeImageプロパティには、入力画像全体ではなく、読み取り中に見つかったバーコードの画像のみが格納されます。

異なる BarCode タイプをプログラムで識別するにはどうすればよいですか?

このプロパティは、入力画像または文書に存在するバーコードのタイプを判別するのに役立ちます。 ただし、画像内のバーコードタイプがIronBarcodeでサポートされ、読み取り可能でなければならないという制限があります。 IronBarcodeでサポートされているバーコードの種類については、こちらの記事をご参照ください。 さらに、サポートされているバーコード形式の完全なリストを調べ、特定の要件との互換性を確認してください。

以下のコードスニペットは、コンソールに値を出力することによって、画像内のバーコード値とバーコードタイプを取得する方法を示しています。

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.cs
using IronBarCode;
using System;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");

// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}
$vbLabelText   $csharpLabel

上記のコードスニペットから、入力画像に対してBarcodeReader.Read()メソッドを呼び出してバーコードの読み取りを行います。 これにより、画像内のすべてのバーコードに関連するBarcodeResultを保存するBarcodeResultsオブジェクトが返されます。 次に、BarcodeResultsオブジェクトを繰り返し処理し、BarcodeResultを取り出してコンソールにバーコードの値とタイプを印刷します。 このアプローチは、Code 39 barcodesのような特殊な形式を含む、さまざまなバーコードタイプでシームレスに動作します。

バイナリ値出力はいつ使うべきですか?

IronBarcodeを使用すると、ユーザーはBarcodeResultオブジェクトからBinaryValueプロパティにアクセスすることで、バーコード値のバイト配列を取得することができます。 これにより、プログラム内でバーコード値をさらに操作できます。 バイナリ値出力は、暗号化されたデータ、BarCodeでエンコードされたファイル添付、またはバイトレベルのデータ処理を必要とするシステムとの統合を扱う場合に特に便利です。

以下のコードスニペットは、バーコード値をバイナリデータとして取得するユースケースを示しています:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.cs
using IronBarCode;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

int i = 1;
foreach (BarcodeResult barcode in result)
{
    var binaryValue = barcode.BinaryValue;
    var barcodeType = IronBarCode.BarcodeEncoding.QRCode;

    // Create QR code
    GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);

    // Export QR code
    generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
    i++;
}
$vbLabelText   $csharpLabel

上記のコードスニペットを観察すると、画像内の複数のバーコードを新しいバイナリエンコードファイルに変換する直感的なプログラムを作成しました。 最初に、サンプルのPNG画像でバーコードをスキャンします。 これらのバーコードを検出したら、それらを繰り返し処理し、BinaryValue プロパティにアクセスし、それを使用して新しいバイナリ ファイルを作成します。 このテクニックは、複数の BarCode を読み取り、それらのバイナリ データを個別に処理する必要がある場合に特に役立ちます。

バーコードの位置と寸法にアクセスするにはどうすればよいですか?

ユーザーがアクセスできるBarcodeResultオブジェクトの別のプロパティとして、画像ファイルやドキュメント内のバーコードの座標 (X1, Y1, および X2, Y2) と、その高さおよび幅があります。 これらのプロパティは、ユーザーがバーコードの位置や寸法に関する情報を取得する必要がある場合に役立ちます。 この空間情報は、自動文書処理、品質管理システム、最適化された BarCode スキャン用の crop regions を実装する場合など、正確な位置決めが必要なアプリケーションにとって非常に重要です。

バーコードの位置と寸法を示しましょう。

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Linq;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");

foreach (BarcodeResult barcode in result)
{
    PointF[] barcodePoints = barcode.Points;

    float x1 = barcodePoints.Select(b => b.X).Min();
    float y1 = barcodePoints.Select(b => b.Y).Min();

    Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);

    bitmap = bitmap.Redact(rectangle, Color.Magenta);

    // Save the image
    bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}
$vbLabelText   $csharpLabel
Three barcode samples (A, B, C) showing different encoded data with similar visual patterns
Three redacted content blocks with illegible text fragments

上記のコード・スニペットは、画像ファイル内の複数の BarCode を再編集しています。これを実現するために、IronBarcodeとIronDrawingという2つのライブラリを組み合わせて使用しています。 BarcodeResultオブジェクトを取得してそこからプロパティを抽出するために、最初にBarcodeReader.Read()メソッドを使用して画像ファイルにあるバーコードを読み取ります。 同時に、入力画像ファイルをAnyBitmapオブジェクトに変換し、画像に再編集メソッドを適用する必要があります。 BarcodeResultsオブジェクトが取得できたら、ループを適用してそれを繰り返し処理し、画像内にある各バーコードのX1, Y1, Width, Heightを取得して、それらをAnyBitmap.Redact()メソッドのCropRectangleプロパティで使用します。

複数ページの文書でページ番号が重要なのはなぜですか?

ユーザーは、BarCodeが見つかったページ番号を取得することができます。 これは、複数の BarCode を含む複数ページのドキュメントを使用し、さらに処理するためにドキュメント内で見つかったバーコードの場所を知る必要があるユーザーに役立つ機能です。 この機能は、PDF文書からBarCodeを読み取ったり、企業アプリケーションでバッチ文書を処理したりするときに不可欠です。

下のコードを見てください:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page number to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}
$vbLabelText   $csharpLabel

上のコード・スニペットは、ユーザーが複数ページのPDF文書で見つかったBarCodeの値とそれぞれのページ番号を返すプログラムを必要とするユースケースの1つを示しています。 コードは、BarcodeReader.ReadPdf()メソッドを使用して、マルチページのPDFドキュメント内のバーコードを読み取り、ドキュメント内で見つかったすべてのBarcodeResultsを格納するBarcodeResultsオブジェクトを返します。 それぞれのオブジェクト内の項目を繰り返し処理して、バーコードの値とそのバーコードが見つかったページ番号を取得します。 この使用例とは別に、ユーザーはこのプロパティを使用して、ドキュメント内のすべての BarCode が読み取られたかどうかをデバッグできます。

ご注意このプロパティから返される値は1 ベースです。つまり、最初のページは常に1 で**あり、0 ではありません。**

バーコードの回転とページの向きを検出するには?

IronBarcodeを使用すると、ユーザーはバーコードの向きやバーコードが見つかったページの向きの情報を取得することができます。 これら2つの情報を抽出するには、BarcodeResultオブジェクトからRotationPageOrientationプロパティにアクセスします。 Rotation は、見つかったバーコードの回転角度を表す整数を返します。 この機能は、画像の向き補正機能と連動し、スキャンの角度に関係なくバーコードを正確に読み取ります。

下のコードを見てください:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.PageOrientation);
    Console.WriteLine(barcode.Rotation);
}
$vbLabelText   $csharpLabel

上記のコードスニペットは、BarcodeResult.PageOrientationBarcodeResult.Rotationの値をそれぞれ取得することによって、ユーザーがページの向きとバーコードの回転を取得できることを証明するために、サンプルPDF入力を添付して実行されました。 この機能は主にデバッグ目的で役立ちます。

[{i:(IronBarcode は、 090180270度の回転のバーコードのみを読み取ることができます。 指定した以外の回転値がある場合、IronBarcodeは値を返しません。 PageOrientationは、PageOrientationオブジェクトを返し、PortraitまたはLandscapeから構成されます。

テキスト プロパティと値プロパティの違いは何ですか?

もちろん、ユーザーがIronBarcodeを使用する際に取得したい主なプロパティは、そのテキストです。 これらの2つのプロパティは、しばしば互換的に使用され、同じ値を返します。 それとは別に、ユーザーはBarcodeResult.ToString()メソッドを使用して同じ結果を得ることができます。 特殊なアプリケーションで作業する場合や、バーコードデータをストリームとしてエクスポートする場合、これらのプロパティは、好みの形式でバーコードコンテンツにアクセスする柔軟な方法を提供します。

以下のコードスニペットはデモンストレーションを示しています:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");

// Output text value to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.Text);
    Console.WriteLine(barcode.ToString());
}
$vbLabelText   $csharpLabel

上記のコードスニペットから、ユーザーはIronBarcodeを使用して画像内のバーコードを読み取るために必要なコードはわずか数行です。 BarcodeReader.Read()メソッドによって返されたBarcodeResultsを繰り返し処理した後、ValueTextプロパティを取得した結果をコンソールに出力し、BarcodeResult.ToString()メソッドを呼び出して、これらがすべて同じ値を返すことを示します。

要するに、IronBarcodeはユーザーがバーコードに関するさまざまな操作を行うための完璧なAPIです。書き込みやデコードに限りません。 様々な出力データ形式がサポートされているため、ユーザーはIronBarcodeが返すBarcodeResultオブジェクトでより多くのことができます。

よくある質問

C#バーコード読み取りはどのような出力形式をサポートしていますか?

IronBarcodeはBarcodeImage、BarcodeType、BinaryValue、座標、寸法、ページ番号、向き、テキスト、値のプロパティを含む複数の出力フォーマットを提供します。これらのフォーマットにより、様々な.NETアプリケーションでバーコードデータを包括的に処理することができます。

たった1行のコードでBarCodeの値を読み取るには?

IronBarcodeを使用すると、次のように1行でバーコードを読み取ることができます: var result = IronBarCode.BarcodeReader.Read('input.png'); これですぐにresult[0].Valueとresult[0].BarcodeTypeを通してバーコードの値とタイプにアクセスできます。

BarcodeResultで利用可能なプロパティは何ですか?

IronBarcodeのBarcodeResultオブジェクトは、BarcodeImage、BarcodeType、BinaryValue、座標、Height & Width、PageNumber、Barcode、PageOrientation、Text、Valueなどのプロパティを含み、バーコード処理ワークフローに包括的なデータを提供します。

読み取り後にバーコード画像を抽出して保存できますか?

はい、IronBarcodeは検出されたバーコードをAnyBitmapオブジェクトとしてBarcodeImageプロパティに格納します。このオブジェクトを取得して画像をさらに処理したり、永続的なコピーとして保存したりできるので、バーコード画像を抽出するための追加コードが不要になります。

バーコードの座標と寸法にアクセスするにはどうすればよいですか?

IronBarcodeは、検出された各バーコードの高さと幅の寸法だけでなく、xとyの位置を含む座標データを提供します。これらのプロパティはBarCodeResultオブジェクトを通してアクセスすることができ、正確なバーコード位置のトラッキングが可能です。

TextプロパティとValueプロパティの違いは何ですか?

IronBarcodeでは、TextプロパティとValueプロパティの両方にバーコードのデータ内容が含まれます。これらのプロパティはBarCodeResultオブジェクトの一部であり、デコードされたバーコード情報を取得するために互換的に使用することができます。

バーコードが見つかったページを特定できますか?

はい、IronBarcodeはBarCodeResultオブジェクトにPageNumberプロパティを含み、複数ページのドキュメントやPDFのどのページに検出されたバーコードが含まれているかを正確に識別することができます。

検出されたバーコードの種類を識別するにはどうすればよいですか?

IronBarcodeのBarcodeResultオブジェクトのBarcodeTypeプロパティは、検出された特定のバーコードフォーマット(QRコード、Code 128など)を識別し、アプリケーションでフォーマット固有の処理を可能にします。

Hairil Hasyimi Bin Omar
ソフトウェアエンジニア
すべての優れたエンジニアのように、ハイリルは熱心な学習者です。彼はC#、Python、Javaの知識を磨き、その知識を活用してIron Softwareのチームメンバーに価値を追加しています。ハイリルはマレーシアのマラ工科大学からIron Softwareのチームに参加し、化学およびプロセス工学の学士号を取得しました。
準備はできましたか?
Nuget ダウンロード 2,035,202 | バージョン: 2025.12 リリース