takecian

Diary

12 Oct 2013

Rails で Cloudinary へアップロードした画像を変換する

WEB サービス用のストレージと言えば S3 が頭に浮かぶけど、

Cloudinary というサービスが便利、という記事を読んだ。

#アップロードの方法自体は CarrierWave というものを使えば簡単なので割愛。

アップロードした画像は URL を変えることでエフェクトを加えるなど加工することができるらしい。

例えばアップロードした画像に以下のようなパラメータを与えると、

<%= link_to cl_image_tag(item.thumbnail.img, :width => 300, :height => 300, :alt => item.name), item %>

#item.thumbnail.img はアップロードした画像の情報。CarrierWave でアップロードした時に取り込まれる。
生成されるのは↓のURL。

http://res.cloudinary.com/hcfuhpwst/image/upload/v1381573720/vp37invkz2ckhfs8t5rw.jpg

そして画像がこちら。

http://res.cloudinary.com/hcfuhpwst/image/upload/v1381573720/vp37invkz2ckhfs8t5rw.jpg

対して、radius のパラメータを加えた場合、

<%= link_to cl_image_tag(item.thumbnail.img, :width => 300, :height => 300, :radius => 20, :alt => item.name, :q => 100), item %>

生成されるURLが↓で、

http://res.cloudinary.com/hcfuhpwst/image/upload/r_20/v1381573720/vp37invkz2ckhfs8t5rw.jpg

加工された画像がこちら。

http://res.cloudinary.com/hcfuhpwst/image/upload/r_20/v1381573720/vp37invkz2ckhfs8t5rw.jpg

加工を加えると画質が落ちるようなので、 :q => 100 というパラメータも渡して画質を保つようにする。