Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: Grauton Kalkulation

  Alt 27. Mär 2012, 16:17
Um die Helligkeit einer Farbe zu ermitteln werden die Rot, Grün und Blau Anteile unterschiedlich bewertet um dem menschlichen Auge möglichst nahe zu kommen.

Mein Code verwendet dazu die Faktoren 61(rot), 174(grün) und 21(blau):
Delphi-Quellcode:
function Intensity(Color: TColor): Integer;
begin
  Color := ColorToRGB(Color);
  Result := GetBValue(Color) * 21 // Blue
    + GetGValue(Color) * 174 // Green
    + GetRValue(Color) * 61; // Red
  Result := Result shr 8;
end;


function GreyColor(Color: TColor):TColor;
var
   i : Integer;
begin
   i := Intensity(Color);
   Result := RGB(i, i, i);
end;
Die Faktoren 54(rot), 182(grün) und 19(blau) aus dem Codebeispiel im Beitrag#1 dürften ähnliche Ergebnise bringen.
Wenn man alle Farbanteile mit 1/3 einrechnet dürfte das Ergebnis leicht unnatürlich aussehen.
Andreas
  Mit Zitat antworten Zitat