ZXing.Netについて

QRコード・バーコード
スポンサーリンク
スポンサーリンク

バーコードのライブラリについて

以前から、バーコードのライブラリについて知りたいと思っており、調査の結果ZXing.Netがベストそうであることを知りました。とは言え実際にやってみないとわからないとところではあります。ちなみに読み方はZXing(ゼブラクロッシング)。

ライセンス

Apache License 2.0 比較的使いやすいライセンスになってます。

実行環境

Windows10 Pro, Visual Studio 2017, C# Form

実際にZXing.netを使ってみた

超簡単です。これは期待がもてるなぁ。たぶん、参考にさせてもらったページがよかったのだと思います。参考にしたページはこちら(ささみだいふくさん)と、アットマークITさんです。あと、こちらも。

  1. Nugetでインストール「プロジェクト⇒Nugetのパッケージの管理」からZXing.netを検索して、インストールしてください。
  2. インストール完了すると以下のようなメッセージがでます。
  3. 新しいC# Formのサンプルプロジェクトを追加してください。
  4. ボタン一つとPictureBoxを追加してください。
  5. usingブロックに using ZXing; を追加してください。
  6. ボタンのクリックイベントに以下のようなコードを書き込んでください。
  7. private void button1_Click(object sender, EventArgs e)
    {
        BarcodeWriter qrcode = new BarcodeWriter
        {
            // 出力するコードの形式をQRコードに選択
            Format = BarcodeFormat.QR_CODE,
            Options = new ZXing.QrCode.QrCodeEncodingOptions
            {
                // QRコードの信頼性
                ErrorCorrection 
            = ZXing.QrCode.Internal.ErrorCorrectionLevel.M,
                // 日本語を表示したい場合シフトJISを指定
                //CharacterSet = "Shift_JIS",
                // デフォルト
                CharacterSet = "ISO-8859-1",
                // QRコードのサイズ決定
                Height = 160,
                Width = 160,
                // QRコード周囲の余白の大きさ
                Margin = 4
            }
        };
        // PictureBoxの中心に画像を表示するように設定
        pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
        // QRコードを出力
        pictureBox1.Image = qrcode.Write("https://office-fun.com/");
    }
    
  8. リビルド成功後、ボタンをクリックすると以下のような結果が表示されます。実際に読み取ることが可能でした。

別の設定方法として、以下のようにも記述できます。

var bacodeWriter = new BarcodeWriter();

// 出力するコードの形式をQRコードに選択
bacodeWriter.Format = BarcodeFormat.QR_CODE;

// QRコードの信頼性
bacodeWriter.Options.Hints[ZXing.EncodeHintType.ERROR_CORRECTION] = ZXing.QrCode.Internal.ErrorCorrectionLevel.M;

// デフォルト
bacodeWriter.Options.Hints[ZXing.EncodeHintType.CHARACTER_SET] = "ISO-8859-1";
// QRコードのサイズ決定
bacodeWriter.Options.Height = 160;
bacodeWriter.Options.Width = 160;
// QRコード周囲の余白の大きさ
bacodeWriter.Options.Margin = 4;

// PictureBoxの中心に画像を表示するように設定
pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
// QRコードを出力
pictureBox1.Image = bacodeWriter.Write("https://office-fun.com/");

注意点

日本語使用はZxing.netなら読み取れるかもしれませんが、他のアプリからは読み取れない気がします。(2019/06/20 追記)

ZXing.NetのQRコード作成時の日本語について
漢字・ひらがなを含むエンコード ZXing.NetでQRコードを作成しようとした際に、うまくいかないようなZxing を使ったQRコードなど、作成サンプル場合が、記されていたので、調査してみました。 結論からいううと 以下...
タイトルとURLをコピーしました