Fonction pour obtenir une couleur en héxa [Résolu]

Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
1 avril 2012
- - Dernière réponse : cs_lilj
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
1 avril 2012
- 27 mai 2010 à 15:55
Bonjour,

je voudrais savoir s'il existe une fonction qui retourne une couleur en hexadécimal de façon aléatoire ??

Merci à vous,
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
9
3
Merci
Hello,

Le plus facile il me semble c'est de généréer des couleurs aléatoires a partir de RGB (0 à 255) car tu n'auras qu'a utiliser des rand.

Après une petite fonction pour convertir le rgb en hexa.

dechex te convertis tes nombre int en hexa et sinon il y a une petite gestion d'erreur.

Voilà si tu ne comprends pas la source, dis moi.


<?php
function rgb2hexa($r, $g=-1, $b=-1)
{
   if (is_array($r) && sizeof($r) == 3)
       list($r, $g, $b) = $r;

   $r intval($r); $g intval($g);
   $b = intval($b);

   $r = dechex($r<0?0:($r>255?255:$r));
   $g = dechex($g<0?0:($g>255?255:$g));
   $b = dechex($b<0?0:($b>255?255:$b));

   $color = (strlen($r) < 2?'0':'').$r;
   $color .= (strlen($g) < 2?'0':'').$g;
   $color .= (strlen($b) < 2?'0':'').$b;
   return '#'.$color;
}
$macouleur = rgb2hexa(rand(0, 255), rand(0, 255), rand(0, 255));
?>

_________________________________
Min iPomme

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Tonio_35
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
3
Merci
Salut,

Belle petite fonction

Une autre approche :
<?php
function randHexaColor() {
    return sprintf("#%02X%02X%02X", rand(0,255), rand(0,255), rand(0,255));
}
echo randHexaColor();
?>


Je me suis limité strictement à la question (== générer une couleur aléatoire)

Cordialement,

Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
1 avril 2012
5
0
Merci
Merci à toi mais la seule ligne de code que je ne comprends pas :
if (is_array($r) && sizeof($r) == 3)
       list($r, $g, $b) = $r;
Commenter la réponse de cs_lilj
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
9
0
Merci
C'est pour appeler ta fonction comme ca :
<?php
rgb2hexa(array(255, 200, 0));
?>

_________________________________
Min iPomme
Commenter la réponse de Tonio_35
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
1 avril 2012
5
0
Merci
ok merci à toi pour le code, c'est effectivement plus facile..
Commenter la réponse de cs_lilj
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
9
0
Merci
De rien !


Tu peux valider le message pour faciliter le parcours du forum....




<--- A coté du message avec la fonction
_________________________________
Min iPomme
Commenter la réponse de Tonio_35
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
9
0
Merci
J'ai parlé trop vite, bonne continuation


_________________________________
Min iPomme
Commenter la réponse de Tonio_35
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
30 août 2011
9
0
Merci
J'oublie toujours le sprintf...

_________________________________
Min iPomme
Commenter la réponse de Tonio_35
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Statut
Membre
Dernière intervention
1 avril 2012
5
0
Merci
merci pour la fonction sprintf ça peut toujours servir ailleur !!
Commenter la réponse de cs_lilj