RailsアプリでDragonflyを使用してサムネイル画像を生成しています。
すべての画像をJPGとして提供しています。クライアントは、次のような透明な PNG ファイルをアップロードしています。
http://www.ibanez.co.jp/products/images/eg2010/ART120_TRF_12_02.png
Dragonfly は RMagick を使用してこれらの画像を JPG に変換します。問題は、PNG 画像を黒い背景の JPG に変換することであり、私のサイトのデザインには白い背景が必要です。私はこのようにそれをオーバーライドしようとしました:
encoded_image = Magick::Image.from_blob(image.data).first
if encoded_image.format.downcase == format
image # do nothing
else
encoded_image.format = format
encoded_image.background_color = "white"
encoded_image.transparent_color = "white"
encoded_image.to_blob
end
しかし、生成された JPG 画像にはまだ黒い背景が含まれています。透明レイヤーを変換するときにRMagickを打ち負かして白い背景を使用する方法を知っている人はいますか?
PNG として提供できることはわかっていますが、その場合、画像は 10 倍の大きさになり、サイトはすでにかなりの帯域幅を使用しています。