🎨

MiniMagickで画像の背景色を透過させる方法

2024/11/22に公開

目的

画像の背景色が白色で配置する先が薄いグレーだったので、画像の白色を透過させることにしました。Ruby on RailsのアプリだったのでRubyで画像処理をする方法を調べていました。いろいろと試行錯誤があったのですが、最終的にMiniMagickで処理を実行することができました。

コード

以下のコードで画像の白色部分を透過させることができました。モデルクラスの一部なのでこのままでは動作しませんが、参考としてメモしておきます。

def transparent_image
  image = MiniMagick::Image.read(self.image)
  image.combine_options do |c|
    c.fuzz "20%"
    c.transparent "white"
  end
  image
end

AIによる解説

画像データの読み込み

image = MiniMagick::Image.read(self.image)

MiniMagick::Image.readを使用して、指定された画像データを読み込みます。

画像のオプション設定

image.combine_options do |c|
  c.fuzz "20%"
  c.transparent "white"
end
  • c.fuzz "20%": このオプションは、色の許容範囲を設定します。ここでは、白に近い色(20%の範囲内)も透明にされます。
  • c.transparent "white": 指定された色(白)を透明に変換します。

Discussion