Ein guter Ansatz besteht darin, die Klasse ImageAttributes zu verwenden, um eine Liste von Farben einzurichten, die beim Zeichnen neu zugeordnet werden sollen. Der Vorteil ist eine gute Leistung sowie eine sehr einfache Anpassung der Remapping-Farben. Probieren Sie etwas wie dieser Code ...
ImageAttributes attribs = new ImageAttributes();
List<ColorMap> colorMaps = new List<ColorMap>();
//
// Remap black top be transparent
ColorMap remap = new ColorMap();
remap.OldColor = Color.Black;
remap.NewColor = Color.Transparent;
colorMaps.Add(remap);
//
// ...add additional remapping entries here...
//
attribs.SetRemapTable(colorMaps.ToArray(), ColorAdjustType.Bitmap);
context.Graphics.DrawImage(image, imageRect, 0, 0,
imageRect.Width, imageRect.Height,
GraphicsUnit.Pixel, attribs);
Ich habe eine sehr ähnliche Frage, und ich frage mich, ob Sie mir helfen könnten: http://stackoverflow.com/questions/1096165/transparent-winform-using-selective- Farben –