Je nach Hintergrundfarbe lässt sich ein Text besser lesen, wenn er in Weiss oder Schwarz gedruckt/gezeichnet wird.
Die folgende Funktion ermittelt die passende Kontrastfarbe für eine bestimmte Hintergrundfarbe.
Delphi-Quellcode:
{**************************************************************************
* NAME: BlackWhiteContrastColor
* DESC: Berechne die Kontrastfarbe (nur schwarz oder weiss)
* zur übergebenen Farbe
*************************************************************************}
function BlackWhiteContrastColor(value: TColor):TColor;
var
intensity : Integer;
begin
value := ColorToRGB(value);
intensity := GetBValue(value) * 21 // Blue
+ GetGValue(value) * 174 // Green
+ GetRValue(value) * 61; // Red
// intensity = 0 -> dark
// intensity = 255*256 -> bright
if intensity >= (128*256) then
Result := clBlack
else
Result := clWhite;
end;