Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Aus Intensität neue Farbe berechnen

  Alt 14. Okt 2005, 13:13
ja, mit etwas überlegen bin ich letztendlich auf folgendes Code gekommen (Die beiden ersten kommen aus der Codelib):

Delphi-Quellcode:
function RGB2TColor(const R, G, B: Byte): Integer;
begin
  // convert hexa-decimal values to RGB
  Result := R + G shl 8 + B shl 16;
end;


procedure TColor2RGB(const Color: TColor; var R, G, B: Byte);
begin
  // convert hexa-decimal values to RGB
  R := Color and $FF;
  G := (Color shr 8) and $FF;
  B := (Color shr 16) and $FF;
end;

function FadeColor(Cl, BGCl: TColor; Fade: Byte):TColor;
var CR, CG, CB, HR, HG, HB: Byte;
begin
  TColor2RGB(CL,CR,CG,CB);
  TColor2RGB(BGCl,HR,HG,HB);
  CR:=(CR*Fade+HR*(256-Fade)) div 256;
  CG:=(CG*Fade+HG*(256-Fade)) div 256;
  CB:=(CB*Fade+HB*(256-Fade)) div 256;
  Result:=RGB2TColor(CR,CG,CB);
end;
ich weiss nicht ob er funktioniert, da er für meine Anwendung offensichtlich deutlich zu langsam ist und es nur flackert, ohne das man was erkennen kann.
ich werde heute abend nochmal genau testen...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat