Paperclipを使って正方形の画像を作る
Railsで画像アップと生成を楽したい、と思いまして「HerokuでAmazon S3に画像をアップロードする - めも帖」というのを書いていました。その後、正方形の画像が欲しいと思うようになりました。
Paperclipは、ImageMagickを利用して色々とできそうなので、設定してみました。そのまえに、ImageMagickのコマンド考えました。
ImageMagickのコマンド
- 長辺が100pxの画像を作る
- 極端な画像だと、短辺が100px以下になってしまうので注意
- gravityで中央に位置合わせ
- cropで切り抜き
convert 1.jpg -resize 100x100 -gravity Center -crop 75x75-0-0 1.png
設定したモデル
- Photoというモデルに設定
- Amazon S3を利用
- アソシエーションは、気にするな
class Photo < ActiveRecord::Base attr_accessible :description, :name, :status, :photo, :shop_id belongs_to :shop has_and_belongs_to_many :items has_many :reviews has_attached_file :photo, :styles => { :square => "200x200", :thumb => "100x100", :medium => "200x200", :large => "600x400" }, :convert_options => { :square => "-gravity Center -crop 150x150+0+0" }, :storage => :s3, :s3_credentials => File.join(Rails.root, 'config', 's3.yml'), :path => ":attachment/:id/:style.:extension" # scope :possible, where('status = 1') scope :one, limit(1) end