在 rails 中使用 mini-magick 和载波优化图像

Optimize image using mini-magick and carrierwave in rails

我正在使用 carrierwave 上传图片。现在我也想优化图像。就像用户上传任何尺寸的图片一样,我想优化该图片的大小不超过 200kb。

为此我添加了 mini-magick gem。 这是我的代码

version :listing_main do
  image = ::MiniMagick::Image::read(File.binread(@file.file))
  // Want to compress image here      
  resize_to_fill 800,600
end

问题是我如何压缩图像,找不到任何方法和教程

使用 Mini Magick 和 CarrierWave 改变图像质量很简单。

首先,转到文件:config/initializers/carrierwave.rb。如果不存在,请创建一个。输入代码:

module CarrierWave
    module MiniMagick
        def quality(percentage)
            manipulate! do |img|
                img.quality(percentage.to_s)
                img = yield(img) if block_given?
                img
            end
        end
    end
end

之后,转到您的 image_uploader 文件。就我而言,它位于 app/uploaders/image_uploader.rb

version :listing_main do    
    process resize_to_fill: [800, 600]
    process :quality => 70
end

我正在使用这段代码,它工作正常。