Anni fa, nella mia copia perduta del libro di programmazione di Windows 3.0 di Charles Petzold, c'era un valore COLORREF o RGB magico che è possibile utilizzare per verificare se si dovrebbe disegnare il testo in un colore chiaro o un colore scuro. Per esempio. se il colore di sfondo era inferiore a questo valore, quindi utilizzare il testo nero, se era più alto, utilizzare il testo bianco. Qualcuno sa/ricorda qual è questo valore magico?Valore COLORREF/RGB magico per determinare quando utilizzare testo chiaro/scuro
5
A
risposta
7
non posso raccontare COLORREF ma ho buoni risultati utilizzando il luminance come soglia:
Y= 0.3 * R + 0.59 * G + 0.11 * B
con i colori espressa in valore decimale compreso tra 0.0 e 1.0.
Se Y> = 0,5 ho considerato lo sfondo "chiaro" (e utilizzato il testo scuro), se Y < 0,5 ho fatto il contrario.
Mi ricordo che ho usato anche altre formule, tra cui la semplice media:
L = (R+G+B)/3
ma non mi piace il risultato. Mi sembra logico che Green contribuisca alla leggerezza più del Rosso e del Rosso più del Blu.
+0
Il calcolo della luminanza funziona perfettamente. Troverò quel valore magico di COLORREF un giorno però ... :) – Rob
Problemi correlati
- 1. valore magico Incompatibile 0
- 2. Quale euristica utilizza TPL per determinare quando utilizzare più core
- 3. 43679 è un numero magico?
- 4. valore magico incompatibile 1.768.713,317 mila nel file di classe
- 5. Determinare quando un valore di colonna cambia in pda dataframe
- 6. HTML - Come definire un valore predefinito per INPUT TYPE = testo senza utilizzare l'attributo 'valore'
- 7. esegue il metodo (magico) quando il metodo esistente è chiamato
- 8. Compilatore magico: perché?
- 9. Come determinare quale CRC utilizzare?
- 10. magico Record non risparmiando
- 11. multipla valore Min e Max per testo
- 12. Quando utilizzare memcached
- 13. Qual è l'errore di numero magico errato?
- 14. Come per determinare il cambio elemento di input quando Inserisci il valore in angularjs
- 15. PHP 5.3 Metodo magico __invoke
- 16. determinare il tipo di codice testo e gettato per difetto
- 17. come determinare la codifica del testo
- 18. Come determinare per quale valore verrà attivato il neurone artificiale?
- 19. Come determinare il valore di sistema per _POSIX_PATH_MAX
- 20. Come nascondere il testo dell'etichetta quando il valore è vuoto?
- 21. Quando utilizzare requestAnimationFrame?
- 22. Si consiglia di utilizzare hashcode per determinare l'uguaglianza in Java?
- 23. Valore impostato RoR per area testo
- 24. .Per passare() ottenere: valore di testo selezionato
- 25. Cambia visualizzazione per testo/valore tramite jquery
- 26. Numero magico in boost :: hash_combine
- 27. Delphi: come determinare e valore TDateTime vuoto
- 28. Quando utilizzare JMS e quando utilizzare REST?
- 29. Che cos'è un array magico in Perl?
- 30. Quando utilizzare un framework js?
Come si definisce "sotto" e "sopra" su due valori RGB? Utilizzi solo la scala di grigi? – suszterpatt
Sembra che la conversione in HSL sia una scommessa migliore, e quindi puoi controllare in base al componente L (o forse S). –
Sono sicuro che se si osservano i valori RGB stessi, sarà possibile calibrare la tolleranza. Sembra molto interessante però! – Layke