[C#]色の置換
画像の色を特定の色で置換する
マイクロアドBTパートナーはブログやサイトに貼るだけ。お小遣いをゲットしよう!
using System.Drawing.Imaging;
private void Form1_Paint(object sender, PaintEventArgs e)
{
ColorMap[] cm = new ColorMap[]{
new ColorMap(),
};
cm[0].OldColor = Color.White;
cm[0].NewColor = Color.Yellow;
using (Bitmap img = new Bitmap("C:\\sample.bmp"))
using (ImageAttributes ia = new ImageAttributes())
{
ia.SetRemapTable(cm);
e.Graphics.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height),
0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia);
}
}
System.Drawing.Imaging名前空間のColorMapクラス配列に置換元の色と置換後の色を
設定する。
そのColorMapをImageAttributesクラスのSetRemapTableで置換する。
色情報を置換したImageAttributesオブジェクトを、DrawImageのオーバーロードに
指定することで置換が可能となる。