Mechanical Echelon

色々とやったことを書いていく

【C#】 ZXingを使ってWindowsフォームにQRコードを生成する

ZXingでQRコードを表示しようとしたけど、結構苦戦したので書いておこうと思います。

言語はC#、開発環境はVisual Studio 2017です。

1.ZXing.NETを利用するための準備をする。

ZXing.NETをダウンロード?インストール?この辺の正しい言葉がわからないけど、使えるようにします。
Visual Studioでソリューションを開いた後
[ツール]→[NuGetパッケージマネージャー]→[ソリューションのNuGetパッケージの管理]→[参照]
ここで、検索の部分に「ZXing」と入れて検索
[ZXing.Net選択]→[プロジェクトにチェックを入れインストール]
ソリューションエクスプローラーの参照の中にzxingが追加されていれば成功です。


2.Form1.cs[デザイン]の変更

QRコードを表示させるために以下の操作をします。
ツールボックスから[PictureBox]を選択
f:id:den_noh:20180324020843p:plain

[PictureBox]をフォーム上に配置
f:id:den_noh:20180324021107p:plain

3.コードを書く

先頭に以下のコードを追加

using ZXing;

フォームロードイベントに以下のコードを記入する。

 private void Form1_Load(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("http://den-noh.hatenablog.com/");
        }

4.実際の表示

f:id:den_noh:20180324031747p:plain