pools.jp | rubyでQRCodeを作成するライブラリrqrをリリース


rubyでQRCodeを作成するライブラリrqrをリリース

rqr_sampleLinuxとMacOSX用にQRCode作成ライブラリをこっそり作ってました。

協同開発者のSoejimaさんによりWindows用バイナリが完成し、APIの設計と実装もひと段落したのでちゃんと紹介します。

rubyforgeのメインページ
rubyforgeのプロジェクトページ

rqrは簡単にQRCode画像を出力した場合に有用なライブラリです。

サイテック社にてフリーソフトとして配布されているC++のコアをANSIに対応し、rubyでラッピングしました。

extを使っているため比較的高速に動作しますし、ひと通りの画像形式で出力できるという特徴を持っています。

以下の説明は、メインページとほぼ同じ内容ですが、インストールと使い方を日本語でまとめておきます。

インストールの準備

Linux

yumでlibjpeg、libpng、libtiffをインストールします。

$ sudo yum install libjpeg
$ sudo yum install libpng
$ sudo yum install libtiff

OSX

OSXでは、FinkまたはMacportsをつかってlibjpeg、libpng、libtiffをインストールします。

※実は私のMacbook環境ではMacPortsでのインストールは失敗しました。なのでFinkの方をおすすめします。

Finkの場合
$ sudo fink install libjpeg
$ sudo fink install libpng
$ sudo fink install libtiff
MacPortsの場合
$ sudo port install jpeg
$ sudo port install libpng
$ sudo port install tiff

Windows

Windows版はバイナリにより配布しているため、準備は不要です。

インストール

$ sudo gem install rqr

使い方

require "rubygem"
require "rqr"

RQR::QRCode.create do |qr|
  qr.save("http://www.amazon.com", "path/to/qrcode.jpg")
end

簡単です。すばらしい。

次のサンプルではモジュールのピクセルサイズを小さくして出力してみます。

require "rubygem"
require "rqr"

RQR::QRCode.create(:module_size=>2) do |qr|
  qr.save("http://www.amazon.com", "path/to/qrcode.jpg")
end

こんな風にcreateメソッドにオプションを渡すことで、生成するQRコードの設定を変更できます。
また拡張子で画像フォーマットを変更することも可能です。

詳しくは、メインページでチェックしてみてください。

フィードバックやパッチがあれば、rubyforgeまでお願いします。


Posted at Saturday, August 16th, 2008comments (6) | trackback | category: Internet, programming, rails, ruby

Read More

Related Reading:

6 Responses to “rubyでQRCodeを作成するライブラリrqrをリリース

  • 1
    Shinji
    November 16th, 2008 11:13

    これはお手軽で素晴らしいですね。

    ただ私のWindows環境(Ruby one-click installer 186-26) +
    rqr 0.2.2 だと qrcode.rb:56 で close メソッドがないと
    言われてしまいます。

    コケるのは QRの画像が生成された後なので rescue で救って
    あげれば表面上は問題なくなるのですが、毎回 close せずに
    終わるのはまずいでしょうか。

    そもそも私のセットアップに何か問題があるんでしょうか?

  • 2
    pools
    November 16th, 2008 17:49

    Shinjiさん、コメントありがとうございます!

    rqrの内部コードからブロックの終了時にcloseを呼び出しています。
    したがって、基本的には、ブロックを使っていればcloseメソッドを呼び出す必要はありません。(rubyのFile.openでブロックを使うイメージです)

    おそらく、rqrのバグで、qrコードのイメージオブジェクト無い状態でcloseを呼び出した場合にコケている可能性が高いかと思います。
    (つまりShinjiさんのコードには問題がないと思います)

    確認して次のバージョンでの修正を検討してみます。

    他に何かありましたら、ぜひフィードバックお願いします!

  • 3
    Shinji
    November 17th, 2008 20:24

    pools さんありがとうございます。
    近いうちにもう少し本格的に使ってみようと思います。
    何か気になる事があればまたご連絡します。

    0.2.3 期待してます。

  • 4
    Yuumi3
    December 22nd, 2008 14:51

    rqr ありがとうございます! 使わせて頂きます ^^)/

  • 5
    gnarl
    September 28th, 2009 17:36

    CentOS5.3を使用しています。

    説明ではlib[jpeg|png|tiff]のインストールが必要とありますが、そのほかにlib[jpeg|png|tiff]-develのインストールも必要なようです。
    gem install時に画像フォーマットに対応するライブラリがないとその画像フォーマットが使用できません。

    $ ruby /usr/lib/ruby/gems/1.8/gems/rqr-0.2.2/test/test_rqr.rb
    Loaded suite /usr/lib/ruby/gems/1.8/gems/rqr-0.2.2/test/test_rqr
    Started
    /usr/lib/ruby/gems/1.8/gems/rqr-0.2.2/test/../lib/rqr/qrcode.rb:50:in `save’: qrcode image error! test.jpg wasn’t created. (RQR::ImageExcep
    tion)

  • 6
    m_seki
    December 15th, 2009 05:29

    非gems環境でのインストールメモを書きました。

    http://d.hatena.ne.jp/m_seki/20091215#1260821703



Leave a Reply

Note: Any comments are permitted only because the site owner is letting you post, and any comments will be removed for any reason at the absolute discretion of the site owner.