CarrierWave и изменить размер до определенной ширины - PullRequest
26 голосов
/ 25 августа 2011

Используя CarrierWave в Rails 3.0, как вы будете делать код? измените размеры изображений шириной более 500 пикселей, чтобы они стали шириной 500 пикселей, и отрегулируйте высоту соответствующим образом, сохранив то же начальное отношение ширины к высоте.

Ответы [ 5 ]

44 голосов
/ 03 октября 2012

Вы можете использовать:

process :resize_to_limit => [500, nil]
30 голосов
/ 20 июля 2012
process :resize_to_limit => [500, 0]

При этом изображение будет иметь ширину не более 500 пикселей при сохранении правильного соотношения сторон и разрешении любой высоты.

4 голосов
/ 21 ноября 2011

Я знаю, что это старый вопрос, но мне нужно что-то подобное.

Я хотел, чтобы изображения были изменены, если они были больше, чем заданный размер, но не были увеличены, если они были меньше.

resize_to_limit (ширина, высота)

Изменение размера изображения в соответствии с указанными размерами при сохранении исходного соотношения сторон. Изменит размер изображения, только если оно больше указанного размера. Полученное изображение может быть короче или уже, чем указано в меньшем измерении, но не будет больше указанного значения.

Подробности: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051

1 голос
/ 16 июля 2012

Если вы хотите ограничить только ширину, используйте:

process :resize_to_limit => [500, -1]

и использование:

process :resize_to_limit => [-1, 500]

для ограничения только высоты.

0 голосов
/ 26 августа 2011

Если вы используете 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

...