FarbeA die moeglichst sichtbar ist wenn gezeichnetauf FarbeB

Status
Nicht offen für weitere Antworten.
K

klopfer

Gast
Ich suche eine Methode die mir zu einer Hintergrundfarbe die Schriftfarbe zurueckgibt mit der ich Text auf den Hintergrundschreiben kann und dieser maximal fuers menschliche Auge sichtbar ist.

Also wenn der Hintergrund Schwarz ist soll die Schriftfarbe weiss sein, etc.
 

JavaNooby

Aktives Mitglied
Du könntest die rgb werte auslesen und die negieren,
(Was bei Grau leider nichts bringt ^^, aber beim rest könnte es funktionieren)


Gruß,
JavaNooby
 

Saxony

Top Contributor
Hiho,

stichpunkte hierzu:

Komplementärfarbe und Invertieren - beides bei Wikipedia zum nachlesen.

Bei Invertierung steht auch gleich dabei, wie man umrechnet.

bye Saxony
 

Marco13

Top Contributor
Ganz abstrakt und spontan würde ich sagen, dass man da den Punkte nehmen sollte, der in "irgendeinem" Farbraum möglicht weit vom gegebenen Punkte weg ist. Vielleicht im HSB-Farbraum. Hobbit_im_Blutrausch hatte vor... längerer Zeit auch mal so eine Frage gestellt, vielleicht findest du den Thread ja noch...
 

Saxony

Top Contributor
Ganz einfach:

RGB <= (128, 128, 128) -> Gegenfarbe Weiß
RGB > (128, 128, 128) -> Gegenfarbe Schwarz

bye Saxony
 

Marco13

Top Contributor
DAS wäre dann eben nicht invertiert, sondern ein weit entfernter Punkt im RGB-Farbraum. Ab weitesten wären aber die "Ecken" des Farbwürfels entfernt.... Und zwar alle gleich.... :?
 

Saxony

Top Contributor
Hiho,

ja, die Frage ist nur, ob es sich lohnt, nur für die Grauwerte extra den entferntesten Punkt innerhalb eines Farbwürfels zu bestimmen, wenn man alle anderen Werte ganz simpel mit Subtraktion berechnen kann! Also lohnt sich der Aufwand der zugehörigen Implementierung?

Treten dann dennoch Fälle auf wo R==G==B ist, dann siehe Beitrag oben.

[edit]
Die Umsetzung von HiB schien ja doch geringfügig komplexer zu sein als newRed = RED - oldRed. ;)
[/edit]

bye Saxony
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben