Thema: Delphi Farben kombinieren

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#27

Re: Farben kombinieren

  Alt 3. Jan 2007, 18:59
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)

Aber das geht mit der additiven Farbmischung nciht:
weis+grün = sehr helles grün <-- wäre weiß
schwarz+grün=grün <-- stimmt
schwarz+weis=weis <-- stimmt
  Mit Zitat antworten Zitat