Ist zwar aus der JavaScript-Welt, aber leicht zu verstehen und entsprechend umzusetzen.
Danke sehr, habe es so umgesetzt:
Delphi-Quellcode:
function Brightness(const Input: TColor): TColor;
begin
Result := Round((GetRValue(Input) * 299 + GetGValue(Input) * 587 + GetBValue(Input) * 114) / 1000);
end;
Wenn Input sehr dunkel ist versagt es.
Die Funktion berechnet auch nur die Helligkeit des Wertes, basierend auf dieser wird dann die Overlay-Farbe ermitteln ($00333333 bzw $00FFFFFF).
Komplementärfarben können oft schwer zu lesen sein bzw. unangenehm für den Betrachter. Würde ich nicht zu raten.
...
...