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に​​増やします。これは、ちょっと受け入れられません。

ここで何が間違っているのかを理解するのを手伝ってくれるなら、本当に感謝しています。

4

0 に答える 0