Weil ich das Problem auch gerade hatte und eine Weile nach der Lösung suchen musste und nicht alle Lösungen, die im Netz angeboten werden, in allen Fällen funktionieren, hier mal eine ColorMatrix, die mit allen Farben korrekt funktioniert.
ImageAttributes ia = new ImageAttributes ();
ColorMatrix cm = new ColorMatrix ();
cm.Matrix00 = cm.Matrix11 = cm.Matrix22 = -1;
cm.Matrix40 = cm.Matrix41 = cm.Matrix42 = 1;
ia.SetColorMatrix(cm);
// Jetzt können die ImageAttributes als Parameter für Graphics.DrawImage
// verwendet werden, um das Bild beim Zeichnen zu invertieren, z.B.
e.Graphics.DrawImage (bmp,
new Rectangle (0, 0, bmp.Width, bmp.Height),
0, 0, bmp.Width, bmp.Height,
GraphicsUnit.Pixel,
ia);
Siehe auch das Kapitel Neueinfärben von Bildern und dessen Unterabschnitte:
Gewusst wie: Verwenden einer Farbmatrix zum Transformieren einer Farbe
Gewusst wie: Verschieben von Bildfarben
Skalieren von Farben mithilfe von Transformationen
Gewusst wie: Drehen von Farben
Gewusst wie: Scheren von Farben
Gewusst wie: Verwenden einer Farbumwandlungstabelle
Schlagwörter: color, colors, Farbe, Farben, ColorMatrix, Bitmap, Image, Graphics, ImageAttributes, invertieren, negieren, umkehren, 1000 Worte
Quelle: myCSharp.de