ruby-on-rails - 使用 mini-magick 和 carrierwave in rails 优化图像

标签 ruby-on-rails ruby imagemagick carrierwave minimagick

我正在使用 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

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

关于ruby-on-rails - 使用 mini-magick 和 carrierwave in rails 优化图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50158449/

相关文章:

ruby-on-rails - 在断言方法的参数中使用感叹号

ruby - 为什么 String#chomp 是这样命名的

Ruby 定义运算符过程

php - JPG 文件大小优化 - PHP、ImageMagick 和 Google 的 Page Speed

ruby-on-rails - 我如何从蓝色大按钮自定义绿光

ruby-on-rails - Ruby On Rails 按功能打包

ruby-on-rails - 访问 POST 参数

imagemagick 力输出文件格式

c++ - 使用 g++ 编译并将 GraphicsMagick++ 作为静态库

ruby-on-rails - unicorn 陷入循环 : Refreshing Gem list