fc2ブログ

C#でバーコード画像を作る

 今回はC#でバーコード(画像)を作る方法を紹介します。
 バーコードを1から自分でつくるのは大変なので、ZXing.Netというライブラリを利用します。
 このライブラリはNuGetからインストールできます。 ZXing_NuGet.png
 ZXingというライブラリもありますが使用するのはZxing.Netの方です。
 では、このライブラリを使用してバーコード画像を作ってみましょう。
 Bitmapを扱うので参照にSystem.Drawingを追加してください。
using System;
using System.Drawing.Imaging;
using System.IO;
using ZXing;

namespace Barcode
{
    class Program
    {
        static void Main(string[] args)
        {
            var bacodeWriter = new BarcodeWriter();

            // バーコードの種類
            bacodeWriter.Format = BarcodeFormat.CODE_128;

            // サイズ
            bacodeWriter.Options.Height = 40;
            bacodeWriter.Options.Width = 200;

            // バーコード左右の余白
            bacodeWriter.Options.Margin = 30;

            // バーコードのみ表示するか
            // falseにするとテキストも表示する
            bacodeWriter.Options.PureBarcode = false;

            // バーコードBitmapを作成
            using (var bitmap = bacodeWriter.Write("Test0123"))
            {
                // 画像として保存
                var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Barcode.png");
                bitmap.Save(filePath, ImageFormat.Png);
            }
        }
    }
}
 バーコードを作成する為のクラスはBarcodeWriterです。
 Formatプロパティにバーコードの書式を指定します。
 Optionsプロパティではサイズやマージン等の設定が行えます。
 Writeメソッドにバーコード化したい文字列を指定するとバーコードBitmapが返ってきます。
 あとはBitmapを画像として保存するだけです。
 このコードを実行すると以下の様なバーコード画像が作成されます。
Barcode_W200.png
 このコードではPureBarcodeプロパティにfalseを指定しているので、バーコードの下にテキストが表示されています。
 この場合、Heightが小さすぎるとWriteメソッド実行時に例外が発生します。(テキスト描画するスペースがないため例外が発生するようです。)
 PureBarcodeをfalseにする場合はHeightの値に注意してください。

 PureBarcodeをtrueにした場合は以下の様にバーコードのみが描画されます。
PureBarcode.png
 テキストを表示していないのでHeightが小さくても例外は発生しません。

 作成されるバーコードの幅はWidthで指定しますが、作成されるバーコードの幅に対してWidthの値が小さすぎた場合は自動で調整されます。
 以下の画像はWidthを10にして作成した画像ですが、作成された画像の幅は142になっています。
Barcode_W10.png
 ちなみに、バーコードに対してWidthが大きすぎる場合はバーコードが中央に配置されます。

 ZXing.Netw使用すると、こんな感じで簡単にバーコード化ができます。
 バーコードがBitmapで帰ってくるので利用しやすくて良いと思います。
 今回はそのまま画像として保存しましたが、ビューワーに表示したり、他の画像等と合成したりと扱いやすいです。
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

カレンダー
12 | 2016/01 | 02
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -
全記事表示リンク

全ての記事を表示する

カテゴリ
タグリスト

月別アーカイブ
04  10  11  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09 
最新記事
リンク
最新コメント
検索フォーム
Amazon