我正在使用carrierwave上传图像。现在我也想优化图像。就像用户上传任何大小的图像一样,我希望优化该图像的大小小于200 in。
为此,我添加了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问题是我如何压缩图像,而不是找到任何方法和教程。
发布于 2018-06-18 18:36:04
使用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我用的正是这段代码,效果很好。
https://stackoverflow.com/questions/50158449
复制相似问题