You can also replace colors using the ImageAttributes and ColorMap classes. Example replaces red->yellow, blue->magenta. Graphics g = Graphics.FromImage(im); ImageAttributes attr = new ImageAttributes(); ColorMap[] remap = new ColorMap[2]; remap[0] = new ColorMap(); remap[0].OldColor = Color.Red; remap[0].NewColor = Color.Yellow; remap[1] = new ColorMap(); remap[1].OldColor = Color.Blue; remap[1].NewColor = Color.Magenta; attr.SetRemapTable(remap); g.DrawImage(im, new Rectangle(0, 0, im.Width, im.Height), 0, 0, im.Width, im.Height, GraphicsUnit.Pixel, attr);