Entwickler-Ecke
Multimedia / Grafik - Wie mische ich Farben?
bms - So 09.09.07 05:20
Titel: Wie mische ich Farben?
Eigentlich dachte ich, daß es einfach ist, aber irgendwo habe ich einen Knoten in der Überlegung. In dem Beispiel mixe ich die blaue mit der gelben Farbe. Rauskommen sollte Grün, kommt aber Grau. Wie man sieht zerlege ich die zuerst die Farben in die Grundfarben. Theoretisch müßte es klappen, aber irgendwo ist der Fehler drinn.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); var R, G, B: Integer; R1, G1, B1: Integer; R2, G2, B2: Integer; begin R1 := GetRValue(clYellow); G1 := GetGValue(clYellow); B1 := GetBValue(clYellow);
R2 := GetRValue(clBlue); G2 := GetGValue(clBlue); B2 := GetBValue(clBlue);
R := (R1 + R2) div 2; G := (G1 + G2) div 2; B := (B1 + B2) div 2;
Color := RGB(R, G, B); end; |
Reinhard Kern - So 09.09.07 07:47
Titel: Re: Wie mische ich Farben?
bms hat folgendes geschrieben: |
Eigentlich dachte ich, daß es einfach ist, aber irgendwo habe ich einen Knoten in der Überlegung. In dem Beispiel mixe ich die blaue mit der gelben Farbe. Rauskommen sollte Grün, kommt aber Grau. Wie man sieht zerlege ich die zuerst die Farben in die Grundfarben. Theoretisch müßte es klappen, aber irgendwo ist der Fehler drinn.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); var R, G, B: Integer; R1, G1, B1: Integer; R2, G2, B2: Integer; begin R1 := GetRValue(clYellow); end; | |
Hallo,
probier mal R1 := GetRValue (ColorToRGB (clYellow)); usw.
Gruss Reinhard
Gausi - So 09.09.07 09:54
Im RGB-Modell gibt Gelb und Blau zusammen nunmal nicht grün. Schau dir mal die RGB-Werte für Gelb an: 255-255-0. Hier wird also Rot und Grün "gemischt", und heraus kommt ein strahlendes Gelb. Würde man beim Streichen und rumspielen mit Farbeimern auch nicht erhalten. Blau ist 0-0-255. Merkste was, warum dann Grau raus kommt? ;-)
Hat was damit zu tun, dass RGB ein additives Farbmodell ist, und was man so beim Farben mischen im realen Leben bekommt, eher einem subtraktivem Modell wie CMYK entspricht. Probier mal, die RGB-Werte von gelb und blau zuerst in den CMYK-Raum zu übersetzen, deine Rechnung dort durchzuführen und anschließend zurück konvertieren.
Corpsman - So 09.09.07 10:19
rgb = 1 - (cmy)
c'm'y'k : k = min ( c,m,y ) c'm'y'= cmy - k
falls du nicht weist was cmyk ist.
Gausi - So 09.09.07 10:23
Hab das aber grade mal ausprobiert. Das mit dem Mittelwert klappt da auch nicht. :nixweiss:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!