rqr を使って Ruby で QRCode 画像を作る

[2014-05-02 追記] ここで書いている rqr は基本的に Ruby 1.8 用でした。その後アップデートされている可能性はゼロではありませんが、1.9 でも動くように自分で

wtnabe/rqrcode_png_bin

を書いてそちらを使っています。興味ある方はどうぞ。


さぁ、今さら日記シリーズが復活しましたよ。

QRCode 画像を Ruby で作る

QRコードを算出する部分は ext だし、画像を吐き出す部分はネイティブのライブラリに依存しているので、多少準備が面倒だけどたぶんそれなりの速度が期待できる。

実は以前から one-liner なんかで使ってはいたんだけど、改めて定型作業に使えるようにちょっとしたスクリプトを書いてみた。

で、そのときに気づいたんだけど、これ、サイトのサンプルコードが間違っている。

RQR::QRCode.new
RQR::QRCode.create

が同じように動くように書いてあるんだけど、new の方は block は受け取らない。create の方は block を受け取って close するまで全部まかなってくれる。あと、Windows 版で面白くない動きをする。

2009-10-14 の twitter のログより。

14:34:29 >wtnabe< あー rqr 0.2.2 は Windows でバグってるのか
14:48:53 >wtnabe< 分かってきた。RQR::QRCode.new.save だと怒られる。
RQR::QRCode.new { |qr| qr.save } だと大丈夫。でも close がないって怒ら
れるのはちょっと不安だなぁ。

ということで create 使っておくのがいちばん無難なのかな。Windows でなんか文句言われるのは今のところ握りつぶしておくしかないみたい。

※ なんか、咳さんが非gem環境でインストールしてる。

画像が必要ない場合は他の方法でもいいけど

実はもう Web 上に QR コードを表示させるためだけならこういう画像を生成するツールはなくてもよかったりする。なぜなら JavaScript があれば動的に生成できるから。

でも例えば印刷用に画像を用意したいとかいう場合はやはり「画像」を自動生成する方が楽。実際にはこの rqr だけでは細かい調整をするのは大変なので、ImageMagick などを噛ませる必要があると思うけど1

  1. 実際、件の ImageMagick のオプションを調べたのはこのため。 

More