Carrierwave と RMagick を使用して、Rails アプリケーションに画像をアップロードしています。私はそのimage_uploader
ようなものを持っています:
class ImageUploader < CarrierWave::Uploader::Base
# ... Other stuff ...
process :convert => 'png'
def filename
super.chomp(File.extname(super)) + '.png'
end
# ...
version :resized_image do
process :resize_and_pad => [X, Y]
end
# ...
end
私の問題は、png 画像をアップロードすると、resize_and_pad
指定された寸法に合わせて透明な背景が追加されることです。しかし、jpg 画像をアップロードすると、png に変換されますが、背景は白で透明ではありません。
それで、この問題の解決策はありますか?サイズ変更された画像に透明な背景を追加するconvert
前にメソッドが呼び出されていることを確認する方法はありますか?resize_and_pad
編集
問題を明確にするために例を挙げます。
アップロードする JPG は通常の画像で、たとえば 300px × 300px です。私のresize_and_pad
方法では、画像を 300px × 400px にパディングします。パディングしたい100pxは透明でなければなりませんが、JPGは透明な背景を持つことができないため、resize_and_pad
. 私の問題は、最終結果が透明な背景ではなく白い背景の画像になることです。