以下のサイトを参考に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が指定可能なようだ
あとはさっきと同じような感じ。
コメント