例えば、
「Polaroize」
http://lab.rails2u.com/polaroize/
のような感じのWebアプリを作りたいと考えています。
アップロードされた画像を加工し、生成された画像をサーバに保存するのではなく、その場で表示してすぐに破棄されるようにしたいです。
また、
「ちょいグラフ」
http://choigraph.minorapi.jp/
のようなWebAPIも作ってみたいと考えています。
これらのサービスのように、Railsで画像を動的に生成するにはどうすれば良いのでしょうか?
簡単なサンプルプログラムなどで教授ください。あるいは、解説サイト(できれば日本語)がありましたら教えてください。
※Rails + RMagick で画像を加工し、jpgやpngでサーバに保存することはなんとかできました。
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あたりのドキュメントをご覧になってください。
やりたかったことがズバリできました!
ありがとうございました。