はじめてのLEADTOOLS(バーコード作成&認識)

tips
  • 2017.03.17
  • 技術情報

1. はじめに

LEADTOOLSは画像を扱う幅広い分野のアプリケーションを開発できる画像処理SDKです。一般的な画像から特殊なものまであらゆる形式の画像ファイルをサポートし、読み込みや保存、編集、フォーマット変換といった画像処理ライブラリにより、画像処理機能を簡単にアプリケーションに実装できます。

本資料では、はじめてLEADTOOLS 19.0Jをご利用いただくことを前提にバーコード作成と認識を扱う基本的な機能を紹介します。これからトライアル版を使ってLEADTOOLS 19.0Jの評価を行う方やLEADTOOLS 19.0J製品版をすでにご購入いただている方に参考にしていただければ幸いです。なお、解説はVisual Studioを利用してアプリケーションを作成したことがある人を対象として行っています。

2.Barcode Pro(1次元バーコード/2次元バーコード)を使ってみる

LEADTOOLSではバーコードの作成と認識ができるライブラリを提供しています。物流システムに深く浸透しているJANコードや、国際的な流通標準となるGS1データバー、製造分野のトレーサビリティにも利用されているQRコードなど数多くの1次元バーコードおよび2次元コードをサポートしています。認識の速度、精度ともに高いクオリティを誇り、画像に含まれるすべてのバーコードデータを一瞬で取得。また、汚れやかすれのある低品質なバーコードでも正確に認識します。バーコードを作成して画像ファイルへの書き込みも可能ですので、バーコードを利用した伝票や帳票からのデータ取得のほか、DB上のデータをバーコード化し伝票類に追加するといった実装が可能です。

多様なシンボルのバーコードを作成、認識できます

› サポートしているバーコードの一覧はこちら(オンラインヘルプ)

(1) バーコードを作成する

バーコードを作成して画像へ追加するには、BarcodeDataクラスでバーコード情報を設定して、BarcodeWriterクラスのWriteBarcodeメソッドを実行します。

サンプルコードでは、RasterCodecsという画像用コーデックで「Text.tiff」という画像を読み込み(デコード)、LEADTOOLSの専用ビューワに表示した後、UPC Aバーコードのシンボルと値、画像サイズをBarCodeDataクラスのSymbology、Value、Boundsプロパティで設定しています。設定したバーコードは、WriteBarcodeメソッドでTest.tiffに書きこんでいます。

スキャナなどで取り込んだ文書画像の任意の位置にバーコードを追加するような場合は、Boundsメソッドで書き込み位置を指定します。

VB
' RasterCodecsオブジェクトを初期化します。
Dim codecs As New RasterCodecs()
' 画像ファイルを読み込んでビューワに表示します。
RasterImageViewer1.Image = codecs.Load("Test.tif")
' UPC Aバーコードを設定します。
Dim data As New BarcodeData()
data.Symbology = BarcodeSymbology.UPCA
data.Value = "01234567890"
data.Bounds = New LogicalRectangle(10, 10, 600, 200, LogicalUnit.Pixel)
' バーコードエンジンを生成します。
Dim engine = New BarcodeEngine()
' バーコードを書き込みます。
engine.Writer.WriteBarcode(RasterImageViewer1.Image, data, Nothing)

C#
// RasterCodecsオブジェクトを初期化します。
RasterCodecs codecs = new RasterCodecs();
// 画像ファイルを読み込んでビューワに表示します。
rasterImageViewer1.Image = codecs.Load("Test.tif");
// UPC Aバーコードを設定します。
BarcodeData data = new BarcodeData();
data.Symbology = BarcodeSymbology.UPCA;
data.Value = "01234567890";
data.Bounds = new LogicalRectangle(10, 10, 600, 200, LogicalUnit.Pixel);
// バーコードエンジンを生成します。
BarcodeEngine engine = new BarcodeEngine();
// バーコードを書き込みます。
engine.Writer.WriteBarcode(rasterImageViewer1.Image, data, null);

WriteBarcode
ビューワが表示しているTest.tifに作成されたバーコード

(2) バーコードを認識する

次に、画像にあるバーコードを読み取って値を認識してみましょう。先ほどUPC Aバーコードを作成して保存した「Test.tif」をビューワに読み込み、BarcodeReaderクラスのReadBarcodeメソッドを実行して値を認識させ、メッセ―ジボックスに表示させます。

VB
' RasterCodecsオブジェクトを初期化します。
Dim codecs As New RasterCodecs()
' 画像ファイルを読み込んでビューワに表示します。
RasterImageViewer1.Image = codecs.Load("Test.tif")
' バーコードエンジンを生成します。
Dim engine = New BarcodeEngine()
' 画像からUPC Aバーコードを1つ読み取ります。
Dim data As BarcodeData = engine.Reader.ReadBarcode(RasterImageViewer1.Image, LogicalRectangle.Empty, BarcodeSymbology.UPCA)
' UPC Aバーコードのデータを表示します。
MessageBox.Show(data.Value.ToString)

C#
// RasterCodecsオブジェクトを初期化します。
RasterCodecs codecs = new RasterCodecs();
// 画像ファイルを読み込んでビューワに表示します。
rasterImageViewer1.Image = codecs.Load("Test.tif");
// バーコードエンジンを生成します。
BarcodeEngine engine = new BarcodeEngine();
// 画像からUPC Aバーコードを1つ読み取ります。
BarcodeData data = engine.Reader.ReadBarcode(rasterImageViewer1.Image, LogicalRectangle.Empty, BarcodeSymbology.UPCA);
// UPC Aバーコードのデータを表示します。
MessageBox.Show(data.Value.ToString());

ReadBarcode
Test.tif上のバーコードを認識してメッセージボックスに表示

(3) QRコードを作成する

QRコードを作成して画像へ追加する方法は非常にシンプルです。QRBarcodeDataクラスのSetDataメソッドでQRコード情報を設定して、BarcodeWriterクラスのWriteBarcodeメソッドを実行するだけです。日本語をQRコード情報として設定する場合は、文字コードをシフトJISに設定する必要があります。

VB
' RasterCodecsオブジェクトを初期化します。
Dim codecs As New RasterCodecs()
' 画像ファイルを読み込んでビューワに表示します。
RasterImageViewer1.Image = codecs.Load("Test.tif")
' QRコードを設定します。
Dim data As New QRBarcodeData()
data.SetData(System.Text.Encoding.GetEncoding(932).GetBytes("グレープシティ GrapeCity ぐれーぷしてぃ"))
' バーコードエンジンを生成します。
Dim engine = New BarcodeEngine()
' バーコードを書き込みます。
engine.Writer.WriteBarcode(RasterImageViewer1.Image, data, Nothing)

C#
// RasterCodecsオブジェクトを初期化します。
RasterCodecs codecs = new RasterCodecs();
// 画像ファイルを読み込んでビューワに表示します。
rasterImageViewer1.Image = codecs.Load("Test.tif");
// QRコードを設定します。
QRBarcodeData data = new QRBarcodeData();
data.SetData(System.Text.Encoding.GetEncoding(932).GetBytes("グレープシティ GrapeCity ぐれーぷしてぃ"));
// バーコードエンジンを生成します。
BarcodeEngine engine = new BarcodeEngine();
// バーコードを書き込みます。
engine.Writer.WriteBarcode(rasterImageViewer1.Image, data, null);

QR_WriteBarcode
指定した値のQRコードが作成されたTest.tifをビューワに表示

(4) 画像からQRコードを認識する

画像にあるQRコードを認識する方法も非常にシンプルです。BarcodeReaderクラスのReadBarcodeメソッドを実行するだけです。ここでも文字コードをシフトJISに設定しています。

VB
' RasterCodecsオブジェクトを初期化します。
Dim codecs As New RasterCodecs()
' 画像ファイルを読み込んでビューワに表示します。
RasterImageViewer1.Image = codecs.Load("Test.tif")
' バーコードエンジンを生成します。
Dim engine = New BarcodeEngine()
' 画像からQRコードを1つ読み取ります。
Dim data As BarcodeData = engine.Reader.ReadBarcode(RasterImageViewer1.Image, LogicalRectangle.Empty, BarcodeSymbology.QR)
' QRコードのデータを表示します。
MessageBox.Show(System.Text.Encoding.GetEncoding(932).GetString(data.GetData))

C#
// RasterCodecsオブジェクトを初期化します。
RasterCodecs codecs = new RasterCodecs();
// 画像ファイルを読み込んでビューワに表示します。
rasterImageViewer1.Image = codecs.Load("Test.tif");
// バーコードエンジンを生成します。
BarcodeEngine engine = new BarcodeEngine();
// 画像からQRコードを1つ読み取ります。
BarcodeData data = engine.Reader.ReadBarcode(rasterImageViewer1.Image, LogicalRectangle.Empty, BarcodeSymbology.QR);
// QRコードのデータを表示します。
MessageBox.Show(System.Text.Encoding.GetEncoding(932).GetString(data.GetData()));

QR_ReadBarcode
Test.tif上のQRコードを認識してメッセージボックスに表示

まとめ

LEADTOOLSのバーコード作成&認識ライブラリを使えば、ここで紹介したようにわずか数行でバーコードの作成と認識ができます。ここでは簡単なサンプルで基本的な機能を紹介していますが、ほかにもさまざまなオプションを設定することができ、ユーザーの幅広いニーズに応えることができる製品です。トライアル版にて是非お試しください。

トピックス一覧に戻る