C#でバーコードをスキャンして読み取る

前回の記事では、さまざまな種類のバーコードをプログラムで生成する方法を学びました。この記事では、C#バーコードリーダーAPIを使用してバーコードを読み取る方法を学習します。この記事では、画像内の特定のタイプまたは異なるタイプのバーコードシンボルを読み取る方法についても説明します。

バーコードを読み取るためのC#API

Aspose.BarCode for .NETは、数行のコード内でさまざまなバーコードシンボルを読み取ることができる強力なバーコードスキャナーおよびリーダーAPIを提供します。 APIをダウンロードするか、NuGetを使用して.NETアプリケーション内にインストールできます。

PM> Install-Package Aspose.BarCode

C#を使用してバーコードを読み取る

以下は、画像ファイルから1Dまたは2Dバーコードを読み取る手順です。

  • BarCodeReaderクラスのオブジェクトを作成し、画像のファイルパスを指定します。
  • BarCodeResultクラスを使用して、BarCodeReader.ReadBarCodes()メソッドから認識結果をフェッチします。
  • BarCodeResultオブジェクトからバーコードのタイプとテキストを取得します。

次のコードサンプルは、C#を使用してバーコードを読み取る方法を示しています。

try
{
	// ディレクトリからファイルを読み取る
	using (BarCodeReader reader = new BarCodeReader("Scan.jpg"))
	{
		foreach (BarCodeResult result in reader.ReadBarCodes())
		{
			// シンボルタイプとコードテキストを読む
			Console.WriteLine("Symbology Type: " + result.CodeType);
			Console.WriteLine("CodeText: " + result.CodeText);
		}
	}
}
catch (Exception ex)
{
	Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose BarCode License. You can purchase full license or get 30 day temporary license from https://www.aspose.com/purchase/default.aspx.");
}

C#で特定のバーコードシンボル体系を読む

読み込もうとしているバーコードの記号をすでに知っている場合があります。このような状況では、BarCodeReaderのオブジェクトにバーコードのタイプを指定できます。タイプを事前に知っていると、バーコード認識プロセスが高速化されます。次のコードサンプルは、バーコードのタイプを指定する方法を示しています。

try
{
    // BarCodeReaderクラスのインスタンスを作成します 
    using (BarCodeReader reader = new BarCodeReader("Code128.jpg", DecodeType.Code128))
    {
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            // コードテキストとシンボルタイプを表示します
            Console.WriteLine("CodeText: " + result.CodeText);
            Console.Write("Symbology Type: " + result.CodeType);
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose BarCode License. You can purchase full license or get 30 day temporary license from http://wwww.aspose.com/purchase/default.aspx.");
}

1つの画像で複数のバーコードシンボルをスキャンする

特定のケースでは、1つの画像に複数のバーコードシンボルが配置されている場合があります。このような場合、一度にすべてのバーコードを認識するようにAPIを構成できます。以下は、1つの画像で複数のバーコードを読み取る手順です。

  • BaseDecodeTypeの配列を作成して、バーコードシンボルのリストを含めます。
  • BarCodeReaderクラスのオブジェクトを作成し、画像をロードします。
  • BarCodeReader.ReadBarCodes()を使用してバーコードを読み取り、そのタイプとテキストを抽出します。

次のコードサンプルは、C#を使用して1つの画像で複数のバーコードシンボルを読み取る方法を示しています。

try
{                 
    BaseDecodeType[] objArray = new BaseDecodeType[] { DecodeType.Code39Standard, DecodeType.Pdf417 };

    // BarCodeReaderを初期化し、ループ内でRead()メソッドを呼び出し、コードテキストとシンボルタイプを表示します
    using (BarCodeReader reader = new BarCodeReader("RecognizingMultipleSymbologies.png", objArray))
    {
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            Console.WriteLine("Codetext: " + result.CodeText);
            Console.WriteLine("Symbology type: " + result.CodeType);
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose BarCode License. You can purchase full license or get 30 day temporary license from http://wwww.aspose.com/purchase/default.aspx.");
}

結論

この記事では、C#を使用してプログラムでバーコードを読み取る方法を学習しました。さらに、1つの画像で1つまたは複数のバーコードシンボルを読み取る方法を見てきました。 ドキュメントを使用して、C#バーコードリーダーAPIの詳細を学ぶことができます。

関連項目