【C#】ZXing.NETでバーコードを生成←画像出力、base64出力手順

C#でバーコード出力処理したいときに使われるZXing.NETについてご紹介します。
本稿ではZXing.NETを使ってバーコードをPNG形式の画像ファイル、base64形式で出力する2つの方法を取り扱います。
.NET系でWebアプリケーション開発をしていた際に、活用していましたので参考になれば幸いです。

ZXing.NETとは

ZXing.NET(ゼブラクロッシングドットネット)は、バーコードおよびQRコードの生成と解析を行うための.NET向けのオープンソースライブラリです。

もともとはJava向けに開発されましたが、その後さまざまなプログラミング言語向けに移植されました。その中のZXing.NETは、C#やVB.NETなどの.NET系で使用するために開発されました。

様々な種類のバーコードの生成だけでなく、バーコードにエンコードされた情報を取得することができます。

導入

ZXing.NETのインストールしましょう。
本稿ではCode128を使ってバーコード生成を行ってみます。

VisualStudioの画面上部[プロジェクト]の[NuGet パッケージの管理]をクリックすると、
Nugetパッケージマネージャーが開くので、「参照」タブを選択した状態で検索欄に「ZXing.NET」と入力します。

検索結果の赤枠部で囲まれている「ZXing.NET」を選択して、インストールします。

注意! 2023年7月時点での最新バージョンは0.16.9ですが、私の環境だとロジック周りでエラーが発生したので動作が確認できたバージョン0.16.6を使用しています。

方法1:画像形式でバーコードを生成

バーコードをpng形式の画像ファイルで生成するメソッドです。
関数内には下記の名前参照を追加しています。

using ZXing;
using System.Drawing;
private void Create_Barcode_Image()
{
        var barcodeWriter = new BarcodeWriter();

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

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

        //マージン
        barcodeWriter.Options.Margin = 1;

        //バーコード生成
        Bitmap barcodeImg = barcodeWriter.Write("1234567890");

        //作成した画像を保存
        barcodeImg.Save("zxingSample.png");
}

方法2:base64形式でバーコードを生成

バーコードをbase64形式で生成するメソッドです。
関数内には下記の名前参照を追加しています。

using ZXing;

using System.Drawing;
using System.Drawing.Imaging;
private string Create_Barcode_Base64()
{
    var barcodeWriter = new BarcodeWriter();

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

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

    //マージン
    barcodeWriter.Options.Margin = 1;

    //バーコード生成
    Bitmap barcodeImg = barcodeWriter.Write("1234567890");


    using (MemoryStream ms = new MemoryStream())
    {
        barcodeImg.Save(ms, ImageFormat.Png);
        byte[] bytes = ms.ToArray();
        //base64に変換
        return Convert.ToBase64String(bytes);
    }
}

最後に

ZXing.NETを使って1次元バーコードを画像ファイル形式、base64形式で出力する方法をご紹介しました。備忘録のために書いてるところもありますので、わかりずらい点もあるかもしれませんが、参考になりましたら幸いです。

コメント

タイトルとURLをコピーしました