アップロードした画像のリサイズ等を簡単に実装出来る gem MiniMagick の設定、インストールを行う。
GitHub リポジトリ MiniMagick
( https://github.com/minimagick/minimagick )
※ インストールの方法から、利用方法までは上記 GitHub に全てまとまっています。
前提
バージョン | |
---|---|
Ruby | 2.1.1 |
Rails | 4.2.0 |
MiniMagick | 4.2.0 |
ImageMagick が必要となるので、事前に homebrew や、Cactuslab で配布しているパーーケージを用いてインストールを済ませておく。
CarrierWave を利用して、アップロードした画像をリサイズする想定で説明を進めるので、ファイルのアップロードについて、以下を先に読んでおくと良いかも。
[Rails gem CarrierWave を利用してファイルをアップロードする]
(http://qiita.com/ryo-ichikawa/items/9ea8a03d78dbaa3106f4)
1. インストール
Gemfile へ MiniMagick を追記
gem 'mini_magick'
Gemfile をインストール。
( rails プロジェクト内に閉じた状態で gem をインストールしたいため --path オプションを利用 )
$ bundle install --path vendor/bundle
2. CarrierWave の uploader クラス修正
元画像の縦横比を維持したまま width を最大 300px、height を最大 200 pxにリサイズする。
process resize_to_limit: [300, 200]
元画像から width 100px, height 100px で切り抜きを行う。
第三引数で、切り抜きを行う際の中心点を指定。
( default: 'Center'; options: 'NorthWest', 'North', 'NorthEast', 'West', 'Center', 'East', 'SouthWest', 'South', 'SouthEast' )
process resize_to_fill: [100, 100, "Center"]
元画像の縦横比を維持したまま width を最大 300px、height を最大 200 pxにリサイズする。
リサイズ後のファイルが 300px × 200px になるよう、余白部分を指定色でぬりつぶす。
第三引数で塗りつぶしの色を指定。
第四引数で、余白が発生した際の画像の配置を指定。
process resize_to_limit: [300, 200, "#ffffff", "Center"]
サムネイル用、フォトギャラリー用等、別バージョンでリサイズした画像を作成する。
version :thumb do
process resize_to_fill: [50, 50]
# thumb.jpg という固定ファイル名で作成 ( full_filename メソッドをオーバーライド )
def full_filename for_file
"thumb.jpg"
end
end
version :gallery do
process resize_to_limit: [300, 200]
# gallery.jpg という固定ファイル名で作成 ( full_filename メソッドをオーバーライド )
def full_filename for_file
"gallery.jpg"
end
end
以上。