読者です 読者をやめる 読者になる 読者になる

KOYAMA Yoshiaki のブログ

プログラミングについての試行錯誤をつらつら書き溜めていきます。

libqrencode を使用したサンプル QR コード作成ツール QRURL と静的ライブラリ libqrencode.a を公開。

OS X Mountain Lion が 7月25日(米国時間)に発売されました。最初のダウンロードは混むので、一日置いてから Mac App Store でダウンロードしました。何の問題もなく OS X Lion から OS X Mountain Lion アップデートできました。後、念のためクリーンインストールしようか、悩んでいます。


また、北米版プチコンmkII : Petit Computer が 2012年7月19日に発売されました。

Nintendo.com – Petit Computer – Game Info
http://www.nintendo.com/games/detail/_YpH-64pY4G4_tAy1wrKVecHp4pmWSzw

Top Page - Petit Computer
http://www.petitcomputer.com/
スマイルブーム.com
http://smileboom.com/blog/

上のブログによると QR コードも共通仕様なので、プチコンmkII 版のプログラムは、北米版 Petit Computer で遊べるみたいです。(一部、TALK 文などが対応していません。) 私の公開しているプログラムも英語の解説を付けたいのですが、英語が苦手なので無理ですね。ホームページのアクセス解析によると海外のアクセス数が増加しています。また、拙作プチコンmkII 版マインスイーパのリンクを紹介した海外サイトもあります。


話は変わって、以前から QR コードの作成プログラムに興味がありました。

ニンテンドーDSi ウェア 'プチコンmkII' は、ホームページ上で SDカードに保存したファイルを QR コード変換ツールを使って QR コードに変換します。


QR コード変換ツールを

PTCUtilities v0.7.3: ROBOMIC(ブログ)
http://micono.cocolog-nifty.com/blog/2012/05/ptcutilities--5.html
PTCUtilites
http://micutil.com/ptcutilities/top.html

上記 URL で公開した人がいます。


Mac 版と Windows 版が作成されていたので、どんなツールで作成されていたのか興味がありました。

実行ファイル PTCUtilities をマウスで右クリック、パッケージの内容を表示を選ぶと

PTCUtilitiesMac/PTCUtilities.app/Contents/MacOS/rbframework.dylib
PTCUtilitiesMac/PTCUtilities.app/Contents/Frameworks/MBS Real Studio Cocoa Plugin.rbx_16.dylib

と表示されます。rb の接頭語から、私が Mac OS 9 時代に使用していた REALbasic を思い出しました。Wikipedia で検索してみると

REALbasic - Wikipedia
http://ja.wikipedia.org/wiki/REALbasic
REALbasicの現状

今は REAL Studio という名称になって発売されているようです。


QR コード作成ツールを作ってみたいと思い、QR コードのライブラリを Google で検索してみました。

libqrencode
http://fukuchi.org/works/qrencode/index.html.ja

上記 URL で公開されている C のライブラリが良さそうです。開発環境をなるべくデフォルトの状態にしたいので、ライブラリのビルドは、Parallels DesktopOS X Lion 上でおこないました。


上記 URL から、ファイル qrencode-3.3.1.tar.gz をダウンロードし、ダブルクリックすると qrencode-3.3.1 という名前のフォルダが作成されます。ターミナルでそのフォルダに移動し、./configure を実行すると pkg-config のバージョンが古いというエラーが出ます。

それで Homebrew を使って

brew install pkg-config

最新の pkg-config をインストールしました。

./configure
make

で問題なくビルドに成功しました。しかし、静的ライブラリ libqrencode.a を作ってくれません。また、ビルドして作成される実行ファイル qrencode は、png ライブラリを使用しています。しかし、libqrencode ライブラリ自体は、どのライブラリにも依存していませんでした。


それで Xcode で無理やり、静的ライブラリを作成することにしました。png ライブラリを使用している qrenc.c 以外の拡張子が C のファイルと config.h 含むヘッダファイルをプロジェクトに追加し、C のファイルのヘッダ読み込み

#if HAVE_CONFIG_H
# include "config.h"
#endif

の箇所から

#if HAVE_CONFIG_H
#endif

を削除し、ビルドしてみました。警告が表示されますが、ビルドに成功しました。


簡単な QR コード作成ツール QRURL と静的ライブラリ libqrencode.a を一緒に公開します。

QRURL
libqrencode.a
http://kyoshiaki.sakura.ne.jp/osx/Sample/qrcode.zip 


ここで、振り出しに戻るのですが、

リンク集 - プチコンまとめWiki
http://wiki.hosiken.jp/petc/?Link
PTC2QR

上記 URL で Ruby のソース付きQR コード変換ツール PTC2QR が公開されています。

ocra-1.2.0 Documentation
http://ocra.rubyforge.org/

初めて知ったのですが、Ruby のソースファイルから Windows 実行ファイルを作るプログラム (ocra 上記 URL 参照) があるんですね!


PTC2QR のソースを Ruby から Objective-C に書き換えてみました。何とか動作するものができました。著作権上、公開は無理なので、スクリーンショットだけ載せておきます。