Zitat von
Alexander Roth:
:roteyes:
Also ich bin jetzt a bissel verwirrt.
Also um alle Missverständnisse aufzuklären:
Ich will eine Mischung wie bei echten Lichtfarben (und kein Malkasten). Das heißt also
Additive Farbsynthese, und keine Farbmischung!!!
Zitat von
Reinhard Kern:
das war/ist das Problem von Anfang an: schon die Fragestellung enthält einen Denkfehler - wenn man addiert und den Übertrag abschneidet (wie gefordert, "weisser als weiss geht nicht"), dann erhält man automatisch Veränderungen des Farbtons: Rot FF + Rot FF gibt eben Rot FF, Grün 40 + Grün 40 gibt Grün 80, d.h. der relative Anteil von Grün hat sich verdoppelt. Anders gesagt, Addieren und Mischen sind ein Widerspruch in sich, beides geht nicht, es sei denn, man beschränkt sich auf Sternenhimmel ohne Mond.
Das ist das Problem. Wie kriegt man das gelöst?
Könnte man vielleicht normal addieren, (ohne abschneiden auf 255) und dann alles auf 255 runterskalieren?
Wäre das eine Lösung?
Gruß Alexander
Hallo,
dann ist addieren und dividieren durch 2 (allgemein für n>2 Durchschnitt) schon das Richtige: so addieren sich zwei nebeneinanderliegende Pixel eines Farbbildschirms auf grössere Entfernung. Additiv ist das deswegen, weil
RGB ja das Farbmodell für additive Systeme wie einen selbstleuchtenden Bildschirm ist. Für den Malkasten gilt das komplementäre System der Druckfarben (Cyan-Magenta-Gelb) und eine andere Rechnung, weil sich da alles zu schwarz addiert.
Nebenbei bemerkt: BitBlt sind per Definitionem bitweise logische Operationen, Farben addieren oder Mischen geht damit grundsätzlich nicht, weil Addieren weder eine bitweise noch eine logische Operation ist.
Gruss Reinhard
Es genügt nicht, einen Algorithmus nicht zu verstehen, man muss auch unfähig sein, ihn in Programmcode umzusetzen.