AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Farben berechnen

Ein Thema von wicht · begonnen am 11. Mai 2007 · letzter Beitrag vom 12. Mai 2007
Antwort Antwort
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
803 Beiträge
 
Delphi XE Professional
 
#1

Farben berechnen

  Alt 11. Mai 2007, 20:41
Hallo Forum!

Nach längerer Zeit schreibe ich auch mal wieder etwas , ich hoffe mir kann jemand helfen.
Das Problem ist nämlich folgendes:

Ich bin absolut VirtualTreeView süchtig. Das Teil wohnt mittlerweile in allen Sachen, die ich so produziere. Aber da liegt auch ein kleiner Bock begraben. Und zwar möchte ich wechselnde Hintergrundbilder in dem View anzeigen, das klappt soweit auch ganz gut. Das Problem ist, dass die Farben davon variieren (richtig geschrieben?), und der Text ja immer schwarz ist. Darum müsste ich irgendwie berechnen, ob ein gegebener Farbwert eher Schwarz oder eher Weiß ist, damit ich den Text dementsprechend anzeigen kann. Dafür bräuchte ich irgendeinen Ansatz, habe hier etwas rumprobiert aber das hat irgendwie nicht wirklich geklappt.

Und falls jemand dann noch Ahnung vom VirtualTreeView hat: Ist es ohne großen Aufwand möglich, die Farbe einzelner Buchstaben zu ändern?

Würde mich auf Antworten zu der ersten Frage freuen, die zweite ist da eher Nebensache, weil ich mich damit selber noch nicht auseinandergesetzt habe. Danke im vorraus, und ein wunderschönes Wochenende..
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Farben berechnen

  Alt 11. Mai 2007, 20:46
Schaue dir einmal bei Wikipedia die Formel für den Grauwert an - sobald dieser unter 0,5 fällt, solltest du auf weiße Schriftfarbe umsteigen. Beim zweiten Problem muss ich mich auf Raten beschränken, aber auch dieser TreeView wird sicherlich eine OwnerDraw-artige Option besitzen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Farben berechnen

  Alt 11. Mai 2007, 20:46
Ich würd sagen, es ist eher schwarz, wenn bei einem gegebenen Farbwert x gilt:
((x shr 16) and $FF)+((x shr 8) and $FF)+(x and $FF)<=(3*255 div 2)
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Farben berechnen

  Alt 11. Mai 2007, 20:49
Nur ist eben blau nicht so hell wie rot und rot nicht so hell wie grün .

PS: Interessant, dass heutzutage noch jemand 3Bit-Farben benutzt .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Farben berechnen

  Alt 11. Mai 2007, 20:57
Hoppala, wo du Recht hast... und das mit den unterschiedlichen Helligkeiten... hmm, daran hab ich ned wirklich gedacht. ^^
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Alien426
Alien426

Registriert seit: 21. Dez 2005
146 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Farben berechnen

  Alt 11. Mai 2007, 22:30
RGB wird in etwa so in Graustufen umgesetzt:
R: 30%, G: 59%, B: 11%

Delphi-Quellcode:
FarbeRGB := ColorToRGB(Farbe);
Grau := Round(GetRValue(FarbeRGB) * 0.30 +
              GetGValue(FarbeRGB) * 0.59 +
              GetBValue(FarbeRGB) * 0.11);
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
973 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Farben berechnen

  Alt 11. Mai 2007, 22:42
Die Luminanzgleichung hat Alien426 ja schon geschrieben

wenn du die Ausrechnest und sich zwei Farben um mehr als 0.2 unterscheiden dann kann man die dann Gut Lesen.

Alles was sich weniger wie 0.2 unterscheided kann der Mensch nur sehr schlecht bis gar net erkennen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 3,9 mb ) aktuell ver 0.64
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
803 Beiträge
 
Delphi XE Professional
 
#8

Re: Farben berechnen

  Alt 12. Mai 2007, 09:51
Vielen lieben Dank für die ganzen Antworten Werde ich im laufe des Tages mal ausprobieren.
Schönes Wochenende erstmal noch!
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf