在 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
我正在使用这段代码,它工作正常。
我正在使用 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
我正在使用这段代码,它工作正常。