Hallo, da gibt es die beiden Verfahren "Blending" und noch was anderes, wo mir jetzt der name nicht einfällt. Aber du kannst es natürlich wiederum linear machen:
Delphi-Quellcode:
function LinearBlendedColor(CBack, CFront: TColor; alpha: Byte): TColor;
var
r1,r2,g1,g2,b1,b2,rr,gr,br: Byte;
//1,2,result
begin
r1 := GetRValue(CBack);
g1 := GetGValue(CBack);
b1 := GetBValue(CBack);
r2 := GetRValue(CFront);
g2 := GetGValue(CFront);
b2 := GetBValue(CFront);
rr := r1 * round(1- (alpha / 255)) + r2 * round(alpha / 255);
gr := g1 * round(1- (alpha / 255)) + g2 * round(alpha / 255);
br := b1 * round(1- (alpha / 255)) + b2 * round(alpha / 255);
Result :=
RGB(rr,gr,br);
end;
So in etwa sollte das hinhauen. exakte formeln sollten sich über internet aber durchaus finden lassen, z.B. in der Wikipedia.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1