我遇到了有关载波质量设置的问题。
首先,让我介绍一些代码(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能帮助我弄清楚这里有什么问题,我将非常感激。