Использование CarrierWave в Rails 3.0 как бы вы сделали код изменяйте размеры изображений с шириной более 500 пикселей и шириной 500 пикселей и соответствующим образом отрегулируйте высоту - сохраняя одинаковое начальное соотношение ширины и высоты.
CarrierWave и изменение размера до определенной ширины
Ответ 1
Вы можете использовать:
process :resize_to_limit => [500, nil]
Ответ 2
process :resize_to_limit => [500, 0]
Это будет обрабатывать изображение не более 500 пикселей, сохраняя при этом правильное соотношение сторон и позволяя любую высоту.
Ответ 3
Я знаю, что это старый вопрос, но мне нужно что-то подобное.
Я хотел, чтобы изображения были изменены, если они были больше заданного размера, но не увеличены, если они были меньше.
resize_to_limit (ширина, высота)
Измените размер изображения в соответствии с указанными размерами, сохранив исходное соотношение сторон. Будет только изменять размер изображения, если оно больше заданных размеров. Полученное изображение может быть короче или уже, чем указано в меньшем размере, но не будет больше заданных значений.
Подробности: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051
Ответ 4
Если вы хотите ограничить только ширину, используйте:
process :resize_to_limit => [500, -1]
и используйте:
process :resize_to_limit => [-1, 500]
чтобы ограничить высоту.
Ответ 5
Предполагая, что вы используете 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