我正在使用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
问题是我如何压缩图像,找不到任何方法和教程
答案 0 :(得分:2)
使用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
我正好使用这段代码而且效果很好。