QRコードをアプリケーションで作成するには?[C#、VB].NET TIPS

» 2009年06月04日 05時00分 公開
[岸本真二郎デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「.NET TIPS」のインデックス

連載目次

 携帯サイトへの誘導などでよく使われる「QRコード」だが、.NET Frameworkで利用できるツールとして「Open Source QRCode Library」(以下QRCode Library)がある。

 上記のリンクからダウンロードできるZIPファイルには、複数のプロジェクトからなるソリューションが含まれているが、この中の「QRCodeLib」プロジェクト(ThoughtWorks.QRCode.dll)が、QRコード生成に必要なライブラリである。

 また、同ZIPファイルに含まれるサンプル・プログラム「QRCodeSampleApp」を実行すると、QRコードの作成に必要な4つのパラメータが分かる。

ZIPファイルに含まれるサンプルアプリケーション。
パラメータを変更して、どのようなQRコードが生成できるか確認できる。

 以下に、この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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。