HOWTO · Csharp
C# でバーコードを読み取る
この記事では、C# を使用して画像ファイルからバーコードを読み取る方法を説明します。
このページの内容
このチュートリアルでは、C# で画像ファイルからバーコードデータを読み取る方法を説明します。サードパーティ製パッケージを使用して、1 つ以上のバーコードを検出し、その種類とデコードしたテキストを出力する完全なプログラムを紹介します。ここで示す手順ではローカルの画像ファイルを読み取ります。バーコードが別のソースから提供される場合は、入力手順を別途調整してください。
C# でバーコードを読み取る
Aspose.BarCode アセンブリパッケージを使うと、C# でバーコード画像を読み取れます。Visual Studio でコンソールプロジェクトを作成し、NuGet.org からパッケージをインストールします。サンプルが名前で開けるように、プロジェクトディレクトリに barcode.png を配置してください。パッケージは認識 API を提供しますが、画像自体はアプリケーションが用意する入力です。
認識 API は Aspose.BarCode.BarCodeRecognition 名前空間にあります。BarCodeReader を作成して ReadBarCodes() メソッドを呼び出し、返された各 BarCodeResult を調べます。各結果にはバーコードの種類を表す CodeType と、デコードされた値を表す CodeText が含まれるため、同じループで 1 枚の画像に含まれる複数のバーコードを処理できます。
次の例では、ファイル名を受け取るコンストラクターを使用します。入力と出力の役割が分かるようにし、使用後はリーダーを破棄します。このライブラリに依存するサンプルは、ここでは実行結果の証拠として提示していません。実行する前にパッケージをインストールし、barcode.png を用意してください。ファイルを開けない場合やライブラリがデコードできない場合は、try/catch ブロックがライブラリのメッセージを書き出すため、何も表示せずに終了することを避けられます。
-
Visual Studio で C# コンソールアプリケーションを作成します。
-
"Project"タブに移動し、"Manage NuGet Packages"を選択します。
-
NuGet.org で
Aspose.BarCodeパッケージを検索し、インストールします。
これで、コードに
Aspose.BarCode.BarCodeRecognition名前空間をインポートし、バーコード認識機能を使用できるようになります。 -
次のコードスニペットを
program.csファイルにコピーしますusing System; using Aspose.BarCode; using Aspose.BarCode.BarCodeRecognition; namespace BarcodeScanner { class Program { static void Main(string[] args) { try { // The file is in the project directory. using (BarCodeReader barCodeReader = new BarCodeReader("barcode.png")) { foreach (BarCodeResult output in barCodeReader.ReadBarCodes()) { // Read the barcode Console.WriteLine("Symbology Type: " + output.CodeType); Console.WriteLine("CodeText: " + output.CodeText); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }このコードは、プロジェクトディレクトリから
barcode.pngを読み取ります。foreachループは、画像に対して返されたすべてのBarCodeResultを処理します。各結果について、CodeTypeのバーコードの種類とCodeTextのデコードされた値を出力します。try/catchブロックにより、入力またはライブラリのエラーが発生しても、メッセージを表示せずにサンプルが終了することを防ぎます。BarCodeReaderクラスにはオーバーロードされたコンストラクターがあります。この例では、ファイル名を受け取るコンストラクターを意図的に使用しています。その他の入力形式はライブラリのバージョンに依存するため、この記事では互換性のあるコードとして紹介していません。
次の画像は、この記事の説明で入力として使用しているものです。
リーダーは、アプリケーションの出力にデコードした値を表示します。次のスクリーンショットは、この入力に対する結果を示しています。
出力の形式を簡単に確認するため、次の自己完結型コンソールサンプルでは、ローカルの結果オブジェクトを使ってライブラリの例と同じ 2 つのフィールドを出力します。
using System;
class Program
{
static void Main()
{
var result = new BarcodeResult("Code128", "123456789");
Console.WriteLine("Symbology Type: " + result.CodeType);
Console.WriteLine("CodeText: " + result.CodeText);
}
private sealed class BarcodeResult
{
public BarcodeResult(string codeType, string codeText)
{
CodeType = codeType;
CodeText = codeText;
}
public string CodeType { get; }
public string CodeText { get; }
}
}
Symbology Type: Code128
CodeText: 123456789
Aspose.BarCode リーダーは有料ツールであり、機能を制限なく使用するにはライセンスが必要です。