2012-08-05 4 views
2

Pour l'une de mes applications Web, je dois sélectionner de façon aléatoire uniquement les codes de couleur html sombres, que j'utilise par la suite comme couleurs de police. Ainsi, chaque fois qu'un utilisateur actualise la page, la couleur de la police change. Mais il devrait changer aux seules nuances sombres. Y a-t-il un moyen de le faire?Comment générer uniquement des codes de couleur html sombres à utiliser comme couleur de police?

J'utilise le morceau de code suivant:

$color = sprintf("#%x%x%x", rand(0,255), rand(0,255), rand(0,255)); 

Répondre

5

au lieu de 255, utilisez une limite beaucoup plus faible, comme 92.

1

Cela dépend ce que vous entendez par obscurité, une version très brute pourrait tout sélectionnez une valeur de couleur aléatoire pour rg et b entre 0 et 127 au lieu d'utiliser la plage complète 255.

Il existe de nombreuses façons de spécifier la couleur sombre et de nombreuses variantes de couleurs sombres pouvant avoir une ou plusieurs valeurs supérieures à un certain seuil.

0

"Foncé" est un terme relatif. Entre #FFFFFF, #FFFFAA et #FFFFFE, le second est "sombre". Mais dans le langage courant, aucun d'eux ne serait considéré comme des couleurs sombres. Il y a aussi différents concepts qui pourraient être traduits comme obscurité/luminosité, tels que la luminance, la valeur, la luminosité photométrique, etc.

Vous devez donc d'abord définir le type d'obscurité qui vous intéresse et également un seuil pour le valeur que vous mesurez.

This question on the brightness of RGB values contient des algorithmes pour divers calculs de luminosité. La luminance perceptuelle est probablement la formule la plus appropriée pour cette question particulière (bien qu'il y ait probablement beaucoup plus d'algorithmes qui tentent de définir la luminosité perceptive que les deux énumérés, et vous souhaiterez probablement utiliser l'un des espaces colorimétriques perceptifs humains les plus avancés là-bas, comme HCL ou CIECAM02, plutôt que RVB), alors il s'agit juste d'inverser la formule pour générer des couleurs dans une plage de luminance particulière.

Edit:
Une des grandes choses au sujet d'avoir une grande communauté diversifiée comme StackExchange est qu'il ya des programmeurs qui travaillent ici dans tous les types de champs, et les chances sont bonnes d'eux a déjà demandé/répondu à une question connexe le vôtre ou helpful to solving the problem you're working on.

Questions connexes