使用CarrierWave调整图像大小而不保留原始宽高比

时间:2018-08-31 20:08:07

标签: ruby-on-rails ruby carrierwave rmagick minimagick

我正在使用CarrierWave将版本添加到我上传的图像中。 resize_to_fit会在调整图像大小的同时将其调整为适合指定尺寸的尺寸,同时又保留原始宽高比。如何在不保留原始宽高比或裁剪的情况下调整图像大小?

1 个答案:

答案 0 :(得分:0)

您需要使用Carrierwave的manipulate!方法在上载器中定义自定义处理方法。这是我刚刚测试过的示例:

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参数结尾处的感叹号)。