Wir nutzen diese Funktion hier, um die Schriftfarbe entsprechend dem Hintergrund zu wählen (aber nur entweder schwarz oder weiß) - das funktioniert dann so wie in dem Artikel, den Sakura gelinkt hat.
Delphi-Quellcode:
function ContrastColor(AColor: TColor): TColor;
type
TRGB = packed record
R, G, B, X: Byte;
end;
var
LColor: TRGB;
LLuminance: Double;
begin
Integer(LColor) := AColor;
// Counting the perceptive luminance - human eye favors green color...
// see https://de.wikipedia.org/wiki/Luminanz
LLuminance := (0.2126 * LColor.R + 0.7152 * LColor.G + 0.0722 * LColor.B) / 255;
if LLuminance > 0.5 then
Result := clBlack
else
Result := clWhite; // dark colors - white font
end;