3

我遇到了有关载波质量设置的问题。

首先,让我展示一些代码(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 可以帮助我找出这里出了什么问题,我将不胜感激。

4

0 回答 0