[C#]色の置換 | Assertion Failed!

[C#]色の置換

画像の色を特定の色で置換する


マイクロアドBTパートナーはブログやサイトに貼るだけ。お小遣いをゲットしよう!


Assertion Failed!-色の置換base 元画像
Assertion Failed!-色の置換 置換後画像(白→黄)

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のオーバーロードに

指定することで置換が可能となる。