動かざることバグの如し

近づきたいよ 君の理想に

ImageMagickで背景色を別の色に変更する方法

環境

やりたいこと

画像の背景色を変えたい

背景が透過されている場合

例えば以下のような画像があったとする。

picture 1

その場合は以下のコマンドを実行する

convert obake.png -background green -alpha remove -alpha off obake-green.png

すると以下のような画像になる

picture 2

指定した背景色を別の色に塗りつぶしたい場合

透過じゃなくて↑みたいな背景色1色の場合 -opaque green -fill red で緑色を赤色に置き換える -fuzz オプションで色の許容誤差を指定できる

convert obake-green.png -fuzz 1% -fill red -opaque green -flatten obake-red.png

picture 3

指定した座標の色を別の色に塗りつぶしたい場合

指定した座標(ここでは0,0)から始まる領域を、fillオプションで指定した色に塗りつぶす事もできる。 -fuzz オプションで色の許容誤差を指定できる

convert obake-green.png -fuzz 1% -fill none -draw "matte 0,0 floodfill" -background red -flatten obake-red.png

こんな感じになる

picture 4

参考リンク