Carrierwave质量不适用于recreate_versions

时间:2013-03-12 11:43:32

标签: ruby-on-rails ruby image carrierwave minimagick

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

首先,让我介绍一些代码(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能帮助我弄清楚这里有什么问题,我将非常感激。

0 个答案:

没有答案