IronBarcode を使用した C# でのデータ形式の出力方法
IronBarcodeは、BARCODE読み取り結果として、BinaryValue、座標、寸法、ページ番号、向き、テキスト、値などのプロパティを含む、複数の出力形式を提供します。 これらのフォーマットにより、さまざまなユースケースにおいてBarCodeデータをプログラムで処理することが可能になります。
IronBarcodeは、単にBarCodeを読み取ってコンソールに値を出力するだけでなく、それ以上の機能を提供します。 ユーザーが読み取った結果を処理するための基盤となる、いくつかの出力形式を提供します。 これらのフォーマットには、BARCODE画像、BARCODEタイプ、valueなどのプロパティが含まれます。
ユーザーはプログラム内でこれらのプロパティをさらに操作することができます。 これらのプロパティの使用方法と、役立つユースケースについて見ていきましょう。
クイックスタート: 1行でBarCodeの値と種類を読み取る
この例では、IronBarcode を使用して画像からバーコードを読み取る方法を示しています。1 行のコードで読み込みを行い、すぐにバーコードの値とタイプを出力します。 すぐに使い始めるのに最適です。より詳細な例については、"BarCode クイックスタートガイド"をご覧ください。
最小限のワークフロー(5ステップ)
- バーコードを読み取るための C# ライブラリをダウンロード
- バーコード検出用にPDFと画像を準備する
- 検出されたBarCodeの種類と画像にアクセスする
- BARCODEの
x座標y座標、およびheightおよびwidth - BARCODEの
textおよびvalue
利用可能な出力形式とその使用例はどのようなものですか?
BarcodeResult には、さまざまな有用なプロパティが格納されています。 これらのプロパティは以下の通りです:
BarcodeImageBarcodeTypeBinaryValue- 座標、
HeightおよびWidth PageNumberBarcodeおよびPageOrientationText&Value
各プロパティは、BarCode処理ワークフローにおいて特定の目的を果たします。 在庫管理システム、ドキュメント処理パイプライン、品質管理アプリケーションの構築を問わず、これらのデータ形式は、さまざまなソースからBARCODEを読み取るために必要な柔軟性を提供します。
BarCode画像を抽出・保存するにはどうすればよいですか?
IronBarcodeが画像を読み込むと、画像内に見つかったBarCodeは、BarcodeResult 型の BarcodeImage プロパティとして AnyBitmap に格納されます。 BarcodeImage プロパティには、検出された BARCODE 画像が格納されます。 ユーザーはこのオブジェクトを取得して、画像をさらに処理したり、恒久的なコピーとして保存したりすることができます。 これにより、画像から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");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Read barcode from PDF file
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")
' Create list for barcodes
Private barcodeList As New List(Of AnyBitmap)()
For Each barcode As BarcodeResult In result
barcodeList.Add(barcode.BarcodeImage)
Next barcode
' Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif")
上記のコードスニペットは、この出力形式のユースケースの一例を示しています。 具体的には、PDF文書内で検出されたBARCODEから、複数ページのTIFF画像を作成します。 まず、サンプルPDF内のBarCodeをスキャンまたは検出します。 次に、BarcodeImageプロパティからの情報を格納します。 最後に、このリストを使用して、CreateMultiFrameTiff メソッドにより複数ページの TIFF ファイルを生成します。 この手法は、複数ページからなるGIFやTIFFファイルを処理する際に特に有用です。
BarcodeImage BarcodeResult のプロパティは、読み取り中に検出された BARCODE の画像のみを保存し、入力画像全体は保存しません。
プログラムでさまざまなBarCodeの種類を識別するにはどうすればよいですか?
このプロパティは、入力画像またはドキュメントにどのような種類のBARCODEが含まれているかを判別するのに役立ちます。 ただし、画像内のBARCODE形式は、IronBarcodeでサポートされ、読み取り可能である必要があります。 IronBarcodeでサポートされているBARCODEの種類について詳しくは、こちらの記事をご覧ください。 また、サポートされているBarCode形式の完全なリストを確認し、お客様の具体的な要件との互換性を確保してください。
以下のコードスニペットは、画像内のBARCODE値とBARCODEタイプを取得し、その値をコンソールに出力する方法を示しています。
: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);
}
Imports IronBarCode
Imports System
' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("bc3.png")
' Output barcode type to console
For Each barcode As BarcodeResult In result
Console.WriteLine("The barcode value is " & barcode.ToString() & " and the barcode type is " & barcode.BarcodeType)
Next barcode
上記のコードスニペットでは、入力画像に対して BarcodeReader.Read() メソッドを呼び出すことで、BARCODEの読み取りを行っています。 これにより、画像内のすべての BARCODE を読み取った結果として、すべての BarcodeResult を格納した BarcodeResults オブジェクトが返されます。 次に、BarcodeResults オブジェクトを反復処理して BarcodeResult を取得し、BARCODE value および type をコンソールにプリントします。 このアプローチは、Code 39 BARCODEのような特殊なフォーマットを含め、さまざまな種類のBARCODEとシームレスに連携します。
バイナリ値の出力はいつ使用すべきですか?
Using IronBarcode, users can retrieve the BARCODE value byte array by accessing the BinaryValue property of the BarcodeResult object. これにより、ユーザーはプログラム内でBARCODE value をさらに操作できるようになります。 バイナリ value 出力は、暗号化されたデータやBARCODEでエンコードされたファイル添付を扱う場合、あるいはバイトレベルのデータ処理を必要とするシステムと統合する場合に特に有用です。
以下のコードスニペットは、BARCODE value をバイナリデータとして取得する使用例を示しています:
: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++;
}
Imports IronBarCode
' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")
Private i As Integer = 1
For Each barcode As BarcodeResult In result
Dim binaryValue = barcode.BinaryValue
Dim barcodeType = IronBarCode.BarcodeEncoding.QRCode
' Create QR code
Dim generatedBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType)
' Export QR code
generatedBarcode.SaveAsPng($"qrFromBinary{i}.png")
i += 1
Next barcode
上記のコードスニペットを見ると、画像内の複数のBARCODEを、個別の新しいバイナリエンコードされたファイルに変換するシンプルなプログラムを作成しています。 まず、サンプルPNG画像内のBarCodeをスキャンします。 これらのBARCODEを検出したら、それらを順に処理し、BinaryValue プロパティにアクセスして、これを使用して新しいバイナリファイルを作成します。 この手法は、複数のBARCODEを読み取り、それぞれのバイナリデータを個別に処理する必要がある場合に特に有用です。
BARCODEの位置と寸法を確認するにはどうすればよいですか?
ユーザーがアクセスできる BarcodeResult オブジェクトのもう一つのプロパティは、BARCODEの座標です。これには Y2、および画像ファイルやドキュメント内の Height と Width を含みます。 これらのプロパティは、ユーザーがBarCodeの位置や寸法に関する情報を取得する必要がある場合に役立ちます。 この空間情報は、自動文書処理や品質管理システム、あるいはBarCodeスキャンを最適化するためのクロップ領域の実装など、正確な位置決めを必要とするアプリケーションにおいて極めて重要です。
BarCodeの位置と寸法を示してみましょう。
: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);
}
Imports System
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Linq
' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")
Private bitmap As AnyBitmap = AnyBitmap.FromFile("multiple-barcodes.png")
For Each barcode As BarcodeResult In result
Dim barcodePoints() As PointF = barcode.Points
Dim x1 As Single = barcodePoints.Select(Function(b) b.X).Min()
Dim y1 As Single = barcodePoints.Select(Function(b) b.Y).Min()
'INSTANT VB TODO TASK: There is no VB equivalent to the C# 'null-forgiving operator':
'ORIGINAL LINE: Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
Dim rectangle As New Rectangle(CInt(Math.Truncate(x1)), CInt(Math.Truncate(y1)), CInt(barcode.Width), CInt(barcode.Height))
bitmap = bitmap.Redact(rectangle, Color.Magenta)
' Save the image
bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png)
Next barcode

校正前

編集後
上記のコードスニペットは、画像ファイル内に存在する複数のBARCODEを処理するものです。これを実現するために、IronBarcodeライブラリとIronDrawingという2つのライブラリを組み合わせて使用しています。 BarcodeResult オブジェクトを取得し、そこからプロパティを抽出するには、まず BarcodeReader.Read() メソッドを使用して、画像ファイル内の BARCODE を読み取ります。 また、画像ファイルに編集処理を適用するには、入力画像ファイルを AnyBitmap オブジェクトに変換する必要があります。 BarcodeResults オブジェクトを取得したら、ループを適用してそれを反復処理し、画像内のすべてのバーコードから Width、および Height を取得し、それらを CropRectangle メソッドの AnyBitmap.Redact() プロパティで使用できます。
複数ページのドキュメントにおいて、ページ番号はなぜ重要なのでしょうか?
ユーザーは、BarCodeが見つかったページ番号を取得できます。 これは、複数のBarCodeを含む複数ページのドキュメントを使用しており、さらなる処理のためにドキュメント内のBarCodeの位置を知る必要があるユーザーにとって便利な機能です。 この機能は、PDFドキュメントからBarCodeを読み取る場合や、Enterpriseアプリケーションでバッチ処理を行う場合に不可欠です。
以下のコードスニペットをご覧ください:
: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);
}
Imports IronBarCode
Imports System
' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")
' Output page number to console
For Each barcode As BarcodeResult In result
Console.WriteLine("The barcode value " & barcode.ToString() & " is found on page number " & barcode.PageNumber)
Next barcode
上記のコードスニペットは、ユーザーがプログラムに対し、複数ページのPDF文書内にあるBarCodeのvalueおよびそれぞれのページ番号を返すよう求めるユースケースの一例を示しています。 このコードは、複数ページのPDFドキュメント内のBARCODEを読み取るためにBarcodeResultsオブジェクトを返します。 ループを適用し、オブジェクト内の各項目を反復処理して、BARCODEの value およびBARCODEが見つかったページ番号を取得します。 このユースケースとは別に、ユーザーはこのプロパティを使用して、ドキュメント内のすべてのBARCODEが読み取られたかどうかをデバッグすることができます。
BarCodeの回転やページの向きをどのように検出しますか?
Using IronBarcode, users can retrieve information about the barcode orientation and the orientation of the page where the barcode was detected. これら2つの情報を抽出するには、BarcodeResult オブジェクトから Rotation および PageOrientation プロパティにアクセスしてください。 Rotation は、検出された BARCODE の回転角度を表す整数を返します。 この機能は、画像の向き補正機能と連携して動作し、スキャン角度にかかわらず正確なBARCODE読み取りを保証します。
以下のコードスニペットをご覧ください:
: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);
}
Imports IronBarCode
Imports System
' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")
' Output page orientation and rotation to console
For Each barcode As BarcodeResult In result
Console.WriteLine(barcode.Value)
Console.WriteLine(barcode.PageOrientation)
Console.WriteLine(barcode.Rotation)
Next barcode
上記のコードスニペットは、添付されたサンプルPDFを入力として実行したものです。これにより、pageOrientationを取得することでページの向きを、BARCODE rotationを取得することでBARCODEの回転方向を、それぞれ取得できることが確認できます。 この機能は主にデバッグの目的で役立ちます。
180、および 270 度の回転を持つバーコードのみ読み取ることができます。 IronBarcodeは、BARCODEの回転角度が指定された値以外の場合、値を返しません。 PageOrientation は PageOrientation オブジェクトを返します。このオブジェクトは Portrait または Landscape で構成されています。)}]TextプロパティとValueプロパティの違いは何ですか?
もちろん、IronBarcodeを使用する際にユーザーが取得したい主なプロパティは、その value および text です。 これら2つのプロパティはしばしば同じ意味で使用され、同じvalueを返します。 それとは別に、ユーザーは BarcodeResult.ToString() メソッドを使用することで、同様の結果を得ることができます。 専門的なアプリケーションでの作業や、BARCODEデータをストリームとしてエクスポートする際、これらのプロパティを利用することで、お好みの形式でBARCODEの内容に柔軟にアクセスできます。
以下のコードスニペットはその一例です:
: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());
}
Imports IronBarCode
Imports System
' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("barcodestamped3.pdf")
' Output text value to console
For Each barcode As BarcodeResult In result
Console.WriteLine(barcode.Value)
Console.WriteLine(barcode.Text)
Console.WriteLine(barcode.ToString())
Next barcode
上記のコードスニペットからわかるように、IronBarcode を使用すれば、ユーザーはわずか数行のコードで画像内のバーコードを読み取ることができます。 BarcodeResults メソッドによって返された BarcodeReader.Read() を反復処理した後、Value および valueを返すことを示します。
一言で言えば、IronBarcodeは、BARCODEの書き込みやデコードにとどまらず、BARCODEに関する様々な操作を実行できる、ユーザーにとって理想的な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など)を識別し、アプリケーションでフォーマット固有の処理を可能にします。
プロジェクトにIronBarcodeを実装するために必要なプログラミングスキルは何ですか?
IronBarcodeをプロジェクトに実装するためには、C#プログラミングの基本的な知識があれば十分で、開発者をガイドするための簡単なメソッドと包括的なドキュメントが提供されています。
IronBarcodeは小規模プロジェクトと大規模エンタープライズアプリケーションの両方に適していますか?
IronBarcodeはスケーラブルかつ多用途に設計されており、小規模プロジェクトおよび強力なバーコードソリューションを必要とする大規模エンタープライズアプリケーションの両方に適しています。

