バーコードのライブラリについて
以前から、バーコードのライブラリについて知りたいと思っており、調査の結果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コードなど、作成サンプル場合が、記されていたので、調査してみました。
結論からいううと
以下...

