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