CarrierWave+MiniMagickでリサイズ

開発環境

バージョン
Ruby 2.5.1
Rails 5.2.3
MiniMagick 4.10.1
CarrierWave 2.1.0

主なメソッド

・resize_to_fit
・resize_to_limit
・resize_to_fill

resize_to_fit

画像の縦と横を維持して比率をリサイズしてくれます。

image_uploader.rb(タイトルとして表示されないんだよなぁ…、以下コードは全てimage_uploaderです)

process resize_to_fit: [300, 200]
# process resize_to_fit: [width, height]


resize_to_limit

resize_to_fitと変わりませんが、対象の画像が指定されているサイズよりも小さい場合はリサイズされない。

process resize_to_limit: [300, 200]
# process resize_to_limit: [width, height]

さらに、余白ができた場合指定した色で塗りつぶしも可能。
らしいのですが、バージョンのせいなのか、うまくいきませんでした。
後日検証します。
どの記事を参照しても記述に間違いはなさそうなので、念のためやり方だけ載せておきます。

process resize_to_limit: [300, 200, "#ffffff", "Center"]
# process resize_to_limit: [width, height,余白の色,余白が出た場合の画像の位置]

resize_to_fill

上二つとは性質が違い、指定したサイズで画像を切り抜く
第三引数で場所を選択して、切り抜きます。

process resize_to_fill: [100, 100, "Center"]
# process resize_to_fill: [width, height, 切り抜きを行う位置]

投稿画像する前のプレビューと画像の比率を合わせるなど、奥が深いです。

参考にした記事

Rails gem MiniMagick を利用して画像ファイルをリサイズする - Qiita

CarrierWave+MiniMagickで使う、画像リサイズのメソッド - Qiita