サンプル5 QRコードで携帯電話に情報転送

リスト7●URLデータを元にQRコードを生成するプログラム
図8●リスト7の実行結果。QRコードとURLを並記したWebページ(index.html)を出力する

 ここまで説明してきたように,Perlには便利に使えるモジュールがたくさんあります。中には驚くほど高機能なモジュールもあります。最近では,2次元バーコードのQRコードを生成するモジュールにびっくりしました。

 ちょっとしたデータをPCから携帯電話に移動するときは,QRコードがとても役に立ちます。ここではInternet Explorer(IE)のブックマーク(お気に入り)データをQRコードに変換するサンプルを紹介しましょう。

 QRコードの生成には「GD::Barcode」モジュールを使います。PNGやGIFなどのグラフィックス・データを生成するGDという汎用のライブラリを利用して,各種のバーコードを生成します。GDライブラリをPerlから利用するにはGDモジュールを使います。

 GDモジュールはGDライブラリともにPPMから入手できるはずなのですが,最新バージョンの5.8は現在のところPPMからはダウンロードできません。そこで,独自にビルドしてパッケージにしているユーザーがいます。そのPPMパッケージを利用しましょう。インストールするにはまず,PPMから「install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd」を実行します。次に「install GD-Barcode」を実行すればGD::Barcodeをインストールできます。

 リスト7[拡大表示]がURLデータをQRコードに変換するプログラムです。変換元のURLデータには,IEからエクスポートしたブックマーク・データを利用します。実行するときは,「<」を使ってPerlプログラムに読み込ませます。実行すると,QRコードのGIFファイルと「index.html」というファイルを生成します。index.htmlを開くと,URLとそのQRコードを並べて表示します(図8[拡大表示] )。

 このプログラムではまずindex.htmlを生成します。その後GD::Barcode::QRcodeでQRコードのイメージを生成し,GIFファイルを作成します。このとき,「:>raw」と記述している点に注意してください。これは,エンコーディング*8や改行コードの自動変換をさせないための指定です。GIFファイルはバイナリ・データなので,文字コード変換などが発生するとデータが壊れます。

 GIFファイルを作ったら,QRコードのイメージをGIF形式で書き込んで,index.htmlにGIFファイルへのリンクとURLの文字列を書き込んでいます。

 GIFファイルのファイル名処理では,Perlならではのおもしろい,便利な機能を利用してます。「マジック・インクリメント」と呼ぶ機能で,インクリメントしながら異なる文字列をどんどん作成する機能です。リスト7では,QRコードのファイル名を,$prefixという変数に入れています。最初は「qr0」という名前を代入してますが,GIFファイルを作るたびに「qr1」「qr2」とインクリメントしていくのです。数値と文字列部分を分離する必要がないので便利に利用できます。覚えておくとよいでしょう。

山口 晴広(やまぐち はるひろ)

10年前よりインターネット・サービス・プロバイダにて開発を担当。現在は有限会社イメージズ・アンド・ワーズ社長として,システム開発,技術書の翻訳,記事執筆などを手がける。普段はWindowsで開発しないので,今回はかなり苦労しました。愛用のIBMスペース・セーバー・キーボードII(英語版)がディスコンになってしまい,次のキーボードをどうするかが目下の悩みの種です。