Thema: Delphi TColor gewichtet mischen

Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: TColor gewichtet mischen

  Alt 22. Dez 2006, 13:00
Also ich habe das so gelöst:
Delphi-Quellcode:
Function MergeColors (C0,C1 : TColor; I,N : Integer) : TColor;
Begin
  If N=1 Then
    Result := c0
  Else
    Result := RGB (
         (GetRValue(c1)*I + GetRValue(c0)*(N-I)) div n,
         (GetGValue(c1)*I + GetGValue(c0)*(N-I)) div n,
         (GetBValue(c1)*I + GetBValue(c0)*(N-I)) div n
       );
end;
Aufruf mit (z.B.):
Mischfarbe := MergeColors (Color1, Color2, 7,10); Die Mischfarbe wird aus 7 Teilen Color1 und 3 Teilen Color2 gemischt (7+3=10). Ob das dem physionomischen (oder wie das heisst) Farbempfinden entspricht, weiss ich nicht, aber mir reicht es.

Delphi-Quellcode:
MergeColors (C1,C2,0,N); // Liefert C2
MergeColors (C1,C2,N,N); // Liefert C1
Es ist ja eigentlich die gleiche Lösung.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat