Zitat von
NamenLozer:
Es geht hier aber nicht ums Dithering, sondern um die
ADDITIVE FARBSYNTHESE!
und die beruht, wie der name schon sagt, darauf, dass zwei farben addiert werden.
und das ginge ja einfach so:
Delphi-Quellcode:
function AddColors(color1,color2: tcolor): TColor;
var r1, g1, b1,
r2, g2, b2: byte
r3, g3, b3: integer;
begin
// falls es sich um eine Windows-Standartfarbe wie z.b clBtnface handelt:
color1 := colortorgb(color1);
color2 := colortorgb(color2);
// zerlegen von Farbe 1
r1 := getrvalue(color1);
// ROT
g1 := getgvalue(color1);
// GRÜN
b1 := getbvalue(color1);
// BLAU
// zerlegen von Farbe 2
r2 := getrvalue(color2);
// ROT
g2 := getgvalue(color2);
// GRÜN
b2 := getbvalue(color1);
// BLAU
// addieren
r3 := r1+r2;
if r3 > 255
then r := 255;
g3 := g1+g2;
if g3 > 255
then g := 255;
b3 := b1+b2;
if b3 > 255
then b := 255;
// farbwerte zusammensetzen
result :=
rgb(r3,g3,b3);
end;
(Zugegebenermaßen nicht gerade optimiert)
Super!!! Danke. Ich probiere es aus sobald meine Arbeit (trotz Ferien
) es zulässt.
Zitat von
NamenLozer:
weis+grün = sehr helles grün <-- wäre weiß
schwarz+grün=grün <-- stimmt
schwarz+weis=weis <-- stimmt
Dann hatte ich ja doch von Anfang an recht.
@Reinhard Kern:
ich glaube dein denkfehler ist, dass schwarz eine Frabe ist. Das ist sie nämlich NICHT!!! Jedenfalls bei den normalen Lichtfarben. Sieht man auch auf den
Bild Da ist alles mit einer schwarzen "Farbe" hinterlegt und sie hat keinen Einfluss auf das schöne ungetrübte Weis in der Mitte.
EDIT:
Es funktioniert!!! Super!!! Problem gelöst!!!
Danke an alle für eure Hilfe!
Gruß Alexander