携帯サイトへの誘導などでよく使われる「QRコード」だが、.NET Frameworkで利用できるツールとして「Open Source QRCode Library」(以下QRCode Library)がある。
上記のリンクからダウンロードできるZIPファイルには、複数のプロジェクトからなるソリューションが含まれているが、この中の「QRCodeLib」プロジェクト(ThoughtWorks.QRCode.dll)が、QRコード生成に必要なライブラリである。
また、同ZIPファイルに含まれるサンプル・プログラム「QRCodeSampleApp」を実行すると、QRコードの作成に必要な4つのパラメータが分かる。
以下に、この4つのパラメータについて簡単に説明する。詳細については、QRコードの開発元である株式会社デンソー ウェーブのサイト「QR Code.com」を参考にしていただきたい。
まず「Encoding」は「情報の種類(モード)」と呼ばれるもので、コード化するデータのタイプについて、「数字」、「英数字」などを指定する。「Correction Level」は誤り訂正能力を指定する(L/M/Q/H。Lが最低、Hが最高)。「Version」は、QRコードに格納する情報量を決める型番で、1から40までの整数を指定できる。格納するデータが大きい(長い)場合は、より大きなバージョン番号が必要となり、QRコードを構成するセル(点)の数も多くなる。「Size」は、このライブラリがQRコードの画像を生成する際に、1個のセルを何ピクセルで描画するかを指定する。大きくするほど画像全体のサイズは大きくなる。
QRCode Libraryでは、これらのパラメータをプロパティとしてセットし、コード化したい文字列を引数にしてEncodeメソッドを呼び出すことによって、QRコードが描画されたImageクラス(System.Drawing名前空間)のオブジェクトを戻り値として取得できる。後は、アプリケーション内でImageオブジェクトを画像ファイルとして保存したり、アプリケーション画面に表示したりできる。
例として、QRコードを作成してファイルに保存するコンソール・アプリケーションを次に示す。このアプリケーションをVisual Studioでビルドするには、プロジェクトでThoughtWorks.QRCode.dllへの参照を追加しておく必要がある。
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
using ThoughtWorks.QRCode.Codec.Util;
namespace csGenQRCode
{
class Program
{
static void Main(string[] args)
{
QRCodeEncoder qrEnc = new QRCodeEncoder();
// エンコードは英数字
qrEnc.QRCodeEncodeMode =
QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
// エラー訂正はM
qrEnc.QRCodeErrorCorrect =
QRCodeEncoder.ERROR_CORRECTION.M;
qrEnc.QRCodeVersion = 7; // バージョン(1〜40)
qrEnc.QRCodeScale = 4; // 1セルのピクセル数
Image image;
// 文字列を指定してQRコードを生成
image = qrEnc.Encode("http:atmarkit.itmedia.co.jp/");
// ファイルに保存
image.Save("C:\\qrcode.png", ImageFormat.Png);
}
}
}
Copyright© Digital Advantage Corp. All Rights Reserved.