Изменение размера изображения без сохранения исходного соотношения сторон с помощью CarrierWave - PullRequest
0 голосов
/ 31 августа 2018

Я использую CarrierWave для добавления версий в мои загруженные изображения. resize_to_fit изменяет размеры изображения, чтобы оно соответствовало указанным размерам, сохраняя при этом исходное соотношение сторон. Как я могу изменить размеры своих изображений, не сохраняя при этом исходное соотношение сторон и не обрезая их?

1 Ответ

0 голосов
/ 01 сентября 2018

Вам нужно определить пользовательский метод обработки в загрузчике, используя метод manipulate! Carrierwave. Вот пример, который я только что протестировал:

class Uploader < CarrierWave::Uploader::Base
    include CarrierWave::MiniMagick

    storage :file
    process :force_resize => [160, 160]

    def force_resize(width, height)
        manipulate! do |img|
            img.resize("#{width}x#{height}!")
            img
        end
    end
end

При этом размер изображения изменяется до 160x160px без учета соотношения сторон (обратите внимание на восклицательный знак в конце аргумента resize).

...