Thema: Delphi Farben kombinieren

Einzelnen Beitrag anzeigen

Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#28

Re: Farben kombinieren

  Alt 4. Jan 2007, 08:23
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 &lt;-- stimmt
schwarz+weis=weis &lt;-- 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
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat