Используя CarrierWave в Rails 3.0, как вы будете делать код? измените размеры изображений шириной более 500 пикселей, чтобы они стали шириной 500 пикселей, и отрегулируйте высоту соответствующим образом, сохранив то же начальное отношение ширины к высоте.
Вы можете использовать:
process :resize_to_limit => [500, nil]
process :resize_to_limit => [500, 0]
При этом изображение будет иметь ширину не более 500 пикселей при сохранении правильного соотношения сторон и разрешении любой высоты.
Я знаю, что это старый вопрос, но мне нужно что-то подобное.
Я хотел, чтобы изображения были изменены, если они были больше, чем заданный размер, но не были увеличены, если они были меньше.
resize_to_limit (ширина, высота)
Изменение размера изображения в соответствии с указанными размерами при сохранении исходного соотношения сторон. Изменит размер изображения, только если оно больше указанного размера. Полученное изображение может быть короче или уже, чем указано в меньшем измерении, но не будет больше указанного значения.
Подробности: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051
Если вы хотите ограничить только ширину, используйте:
process :resize_to_limit => [500, -1]
и использование:
process :resize_to_limit => [-1, 500]
для ограничения только высоты.
Если вы используете RMagick или MiniMagick, добавьте эту строку в свой класс загрузчика:
process :resize_to_fit => [500]
Дополнительная информация:
http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/RMagick.html#M000064 http://www.imagemagick.org/RMagick/doc/image3.html#resize_to_fit