バーコードのライブラリについて
以前から、バーコードのライブラリについて知りたいと思っており、調査の結果ZXing.Netがベストそうであることを知りました。とは言え実際にやってみないとわからないとところではあります。ちなみに読み方はZXing(ゼブラクロッシング)。
ライセンス
Apache License 2.0 比較的使いやすいライセンスになってます。
実行環境
Windows10 Pro, Visual Studio 2017, C# Form
実際にZXing.netを使ってみた
超簡単です。これは期待がもてるなぁ。たぶん、参考にさせてもらったページがよかったのだと思います。参考にしたページはこちら(ささみだいふくさん)と、アットマークITさんです。あと、こちらも。
- Nugetでインストール「プロジェクト⇒Nugetのパッケージの管理」からZXing.netを検索して、インストールしてください。
- インストール完了すると以下のようなメッセージがでます。
- 新しいC# Formのサンプルプロジェクトを追加してください。
- ボタン一つとPictureBoxを追加してください。
- usingブロックに using ZXing; を追加してください。
- ボタンのクリックイベントに以下のようなコードを書き込んでください。
- リビルド成功後、ボタンをクリックすると以下のような結果が表示されます。実際に読み取ることが可能でした。
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/"); }
別の設定方法として、以下のようにも記述できます。
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コードなど、作成サンプル場合が、記されていたので、調査してみました。
結論からいううと
以下...