[C#]QR Codeの作成


1. 概要
C#でQR Codeを作成する方法を記載します。標準のライブラリでQR Codeを作成することはできませんが、オープンソースのライブラリを使用して作成/読み込みを行うことができます。
使用可能なライブラリは以下から入手できます。
Open Source QRCode Library
ライセンス:The Code Project Open License (CPOL)
2. 使用方法
(1)ライブラリの準備
ダウンロードしたアーカイブを解凍し、"ThoughtWorks.QRCode.sln"を開きます。VisualStudio2010以降の場合は自動的に変換が行われます。
ソリューションのビルドを行うと以下のエラーが発生し失敗します。
error CS0117: 'ThoughtWorks.QRCode.Properties.Resources' に 'GetResource' の定義がありません。
変換時に"QRCodeLib\Properties\Resources.Designer.cs"内から'GetResource'が削除されるために発生します。以下のコードを追加することで解決することができます。
001_QR.jpg

internal static byte[] GetResource(String name)
{
	object obj = ResourceManager.GetObject(name, resourceCulture);
	return ((byte[])(obj));
}

この状態でビルドを行えば、"QRCodeSampleApp\bin\Release\ThoughtWorks.QRCode.dll"が作成されます。
(2)アプリケーションへの組み込み
新規でプロジェクトを作成し、参照設定にThoughtWorks.QRCode.dllを追加します。
002_QR.jpg

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

//出力画像ファイル作成用
using System.Drawing;
using System.Drawing.Imaging;

//QRCodeライブラリ定義
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;

namespace TestQRCode
{
	class Program
	{
		static void Main(string[] args)
		{
			//QRエンコーダーの設定
			QRCodeEncoder qrEnc = new QRCodeEncoder();
			// エンコードはバイト列
			qrEnc.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
			// エラー訂正はL
			qrEnc.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
			//バージョン設定
			qrEnc.QRCodeVersion = 4; // バージョン(1~40)
			//ピクセルサイズの設定
			qrEnc.QRCodeScale = 4; // 1セルのピクセル数
			// 文字列を指定してQRコードを生成
			Image image = qrEnc.Encode("QR Code creating sample");
			// ファイルに保存
			image.Save("Sample_QR_Code.png", ImageFormat.Png);
		}
	}
}

0 件のコメント :

コメントを投稿