, | 4月 20th, 2008

以下のサイトを参考にRailsでQRコード作ってみた。

MacにGDとRubyGDをインストール

$ sudo port install gd2
$ sudo port install rb-gd

QRコードクラスライブラリ for Ruby をDLしてきて、RAILS_ROOT + ‘/lib’ 以下に設置。

このまま使ってみると、qrcode.rb の Regexp.compileでエラーが出るので、 該当の箇所を書き換える。RailsでQRコードを生成を参考にして、Regexp.comple の第3引数でデフォルトエンコードに戻すようです。

# Regexp.compile(n3_search))
# ↓みたいに引数を追加。合計4箇所あるはず。
Regexp.compile(n3_search, false, 'n'))

ReadMeに QrcodeのコンストラクタでQrcode用のデータを @path を設定しているので、これを変更しろとのことで、 @path = RAILS_ROOT + ‘/lib/qrcode_data’ と変更する。これは高速化のために必要と書いてある。

あとは、読み込みたいところで以下のようにして使う。RubyでQRコードを作ろうを参考に以下のような形で。

ruby script/console とか立ち上げると

>>require 'qrcode_img'
>> url = "http://d.hatena.ne.jp/omochist/"
>> qr = Qrcode.new
>> qr_data = qr.make_qrcode(url)
>> qr_image = Qrcode_image.new
>> qr_image.image_out(qr_data, 'png', 'ecpplue.png')

これで、RAILS_ROOT に ecpplus.png っていうQRが出来ています。

QRコードの大きさを変えたいときは、Qrcode_image に @module_size, @quiet_zone というのがあるので、これを調節する。

@module_size # 全体の大きさ
@quiet_zone # 余白

>> qr_image = Qrcode_image.new
>> qr_image.set_module_size(7)  # 1-8が指定可能なようだ
>> qr_image.set_quiet_zone(1)  # 1-8が指定可能なようだ

あとはさっきと同じような感じ。

download the hurt locker