web-dev-qa-db-ja.com

CarrierWaveと特定の幅にサイズ変更

Rails 3.0でCarrierWaveを使用すると、幅が500ピクセルを超える画像のサイズを500ピクセル幅に変更し、高さを適切に調整する方法を教えてください-幅の初期比率を同じに保ちます高さに。

28
BuddyJoe

使用できるもの:

process :resize_to_limit => [500, nil]
44
process :resize_to_limit => [500, 0]

これにより、適切なアスペクト比を維持し、任意の高さを許可しながら、画像の幅が500px以下になるように処理されます。

30
Jason Yost

これは古い質問ですが、似たようなものが必要でした。

画像が特定のサイズよりも大きい場合はサイズを変更したいのですが、小さい場合は拡大しませんでした。

resize_to_limit(width、height)

元のアスペクト比を維持しながら、指定したサイズに収まるように画像のサイズを変更します。指定したサイズよりも大きい場合にのみ、画像のサイズを変更します。結果の画像は、小さい方の寸法で指定された値よりも短くなったり狭くなったりする場合がありますが、指定された値より大きくなることはありません。

詳細: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051

4
Galaxy

幅のみを制限する場合は、次を使用します。

process :resize_to_limit => [500, -1]

と使用:

process :resize_to_limit => [-1, 500]

高さのみを制限します。

1
smoothdvd