Erst einmal hätte ich zu bemängeln, dass du als Programmiersprache C# angegeben hast, ändere das doch bitte ganz kurz
Die Funktionen zur Umrechnung von TColor zu
RGB kannst du dir sparen. Es gibt bereits Funktionen, die dies tun:
Delphi-Quellcode:
Farbe :=
RGB(Red, Green, Blue);
// und
R := GetRValue(Farbe);
G := GetGValue(Farbe);
B := GetBValue(Farbe);
// somit würde das Invertieren so aussehen:
InvertierteFarbe :=
RGB(255 - GetRValue(Farbe), 255 - GetGValue(Farbe), 255 - GetBValue(Farbe);
Du könntest doch auch einfach die Farben xor'en, der Kontrast müsste ausreichend gut sein.