Il y a quelques années, dans ma copie perdue du livre de programmation Windows 3.0 de Charles Petzold, il y avait une valeur magique COLORREF ou RVB documentée que vous pourriez utiliser pour vérifier si vous devrait dessiner le texte dans une couleur claire ou une couleur foncée. Par exemple. Si la couleur d'arrière-plan était inférieure à cette valeur, utilisez du texte noir, s'il était plus haut, utilisez du texte blanc. Est-ce que quelqu'un sait/se souvenir de ce qu'est cette valeur magique?Valeur magique COLORREF/RVB pour déterminer quand utiliser le texte clair/foncé
Répondre
Je ne peux pas parler de COLORREF mais j'ai obtenu de bons résultats en utilisant le luminance comme seuil:
Y= 0.3 * R + 0.59 * G + 0.11 * B
avec des couleurs exprimée en valeur décimale entre 0,0 et 1,0.
Si Y> = 0,5 j'ai considéré l'arrière-plan "lumière" (et utilisé le texte foncé), si Y < 0,5 j'ai fait le contraire.
Je me souviens aussi utilisé d'autres formules dont la moyenne simple:
L = (R+G+B)/3
mais je ne l'ai pas aimé le résultat. Il me semble logique que le vert contribue à la légèreté plus que le rouge et le rouge plus que le bleu.
Le calcul de la luminance fonctionne parfaitement. Je vais trouver cette valeur magique COLORREF un jour si ... :) – Rob
- 1. Comment déterminer quand le texte d'un élément HTML est modifié
- 2. déterminer quand sifr est fait?
- 3. Comment et quand utiliser le codage Html
- 4. Déterminer quand défiler vers le bas d'une page avec Javascript
- 5. UIWebView redimensionne le texte après rotation: recherche d'explication pour un bug magique ou ma stupidité
- 6. Comment utiliser le vtable pour déterminer le type de classe
- 7. Android - Quand utiliser le service
- 8. Quand utiliser POJO et Quand utiliser SLSB
- 9. Comment utiliser bcompiler et la constante magique __FILE__
- 10. déterminer le jeu de caractères à utiliser
- 11. Quand utiliser le serveur cloud?
- 12. Quand utiliser conserver et quand utiliser copier
- 13. apache2 et le binaire magique php
- 14. Quand utiliser MessageQueueTransaction pour des cas simples?
- 15. Comment déterminer quand le défilement dans le navigateur apparaît
- 16. Quand utiliser DBL_EPSILON/epsilon
- 17. Quand utiliser des convertisseurs de valeur dans une application mvvm?
- 18. Comment déterminer quand l'entrée est alphabétique? Je
- 19. .Net - Stratégies pour éviter chaîne magique
- 20. FileSystemWatcher - comment déterminer quand le fichier est fermé?
- 21. DataGrid Flex - déterminer quand la grille a terminé le rendu?
- 22. Quand utiliser View Preparer pour les mosaïques
- 23. applescript et souris magique
- 24. Quand utiliser SQLITE_TRANSIENT vs SQLITE_STATIC?
- 25. Quand utiliser le processeur de contexte
- 26. Smart gwt. Comment déterminer quand le chargement est terminé
- 27. Objective-C performSelector quand utiliser le côlon?
- 28. Quand utiliser le motif d'usine abstrait?
- 29. Déterminer quand et quel caractère est ajouté ou supprimé dans une zone de texte
- 30. php 5.1.6 Méthode magique __toString
Comment définir "ci-dessous" et "ci-dessus" sur deux valeurs RVB? Utilisez-vous seulement les niveaux de gris? – suszterpatt
Il semble que la conversion en HSL soit un meilleur pari, et vous pouvez ensuite vérifier en fonction du composant L (ou éventuellement S). –
Je suis sûr que si vous regardez les valeurs RVB eux-mêmes, vous seriez capable de calibrer la tolérance. Cela semble très intéressant cependant! – Layke