Ruby on Rails で画像を動的に生成する方法を教えてください。


例えば、
「Polaroize」
http://lab.rails2u.com/polaroize/
のような感じのWebアプリを作りたいと考えています。
アップロードされた画像を加工し、生成された画像をサーバに保存するのではなく、その場で表示してすぐに破棄されるようにしたいです。

また、
「ちょいグラフ」
http://choigraph.minorapi.jp/
のようなWebAPIも作ってみたいと考えています。

これらのサービスのように、Railsで画像を動的に生成するにはどうすれば良いのでしょうか?
簡単なサンプルプログラムなどで教授ください。あるいは、解説サイト(できれば日本語)がありましたら教えてください。

※Rails + RMagick で画像を加工し、jpgやpngでサーバに保存することはなんとかできました。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/12/09 02:57:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:moro No.1

回答回数23ベストアンサー獲得回数10

ポイント100pt

Magick::Imageクラスのインスタンスメソッド、to_blobを呼べばOKです。

バイナリデータを文字列として取得できますので、あとはsend_dataすればよいでしょう。通常の画像として表示するのであれば、Content-Dispositionも指定する必要があります。

class ImageController < ApplicationController

  # accessed <img src="/image/handle_image/..." />
  def handle_image
    # 画像をいろいろ加工したり生成したり
    image = some_image_handler_methods(params)
    send_data(image.to_blob, :disposition => "inline", :type => "image/png")
  end
end

詳しくは、ActionCotnroller::Base#send_data()とRMagickのMagick::Imageあたりのドキュメントをご覧になってください。

id:noriyoshi

やりたかったことがズバリできました!

ありがとうございました。

2007/12/09 02:55:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません