搬送波の品質設定に関する問題が発生しました。
まず、コードの一部を紹介します (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に増やします。これは、ちょっと受け入れられません。
ここで何が間違っているのかを理解するのを手伝ってくれるなら、本当に感謝しています。