我遇到了有关载波质量设置的问题。
首先,让我展示一些代码(uploaders/second_image_uploader):
class SecondImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
def filename
super.chomp(File.extname(super)) + '.png' unless super.nil?
end
version :full do
process :quality => 85
end
# ...
end
和质量过程代码(initializers/carrierwave.rb):
module CarrierWave
module RMagick
def quality(percentage)
manipulate! do |img|
img.write(current_path){ self.quality = percentage } unless img.quality == percentage
img = yield(img) if block_given?
img
end
end
end
end
所以,问题:
当我在模型创建上上传文件时,一切正常——carrierwave 创建“完整”版本,根据我的参数压缩,创建大约 50kb 的图像——太棒了!
无论如何,一旦我运行> some_model.second_image.recreate_versions!
,它会重新创建它们,但没有应用质量参数,将大小增加到 500kb 左右,这是不可接受的。
如果 any1 可以帮助我找出这里出了什么问题,我将不胜感激。