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

Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
Dernière intervention
1 avril 2012
- - Dernière réponse : cs_lilj
Messages postés
205
Date d'inscription
dimanche 13 décembre 2009
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 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
567
Date d'inscription
mercredi 4 octobre 2006
Dernière intervention
30 août 2011
10
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 118 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
Dernière intervention
27 avril 2012
22
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 118 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
Dernière intervention
1 avril 2012
1
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
Dernière intervention
30 août 2011
10
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
Dernière intervention
1 avril 2012
1
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
Dernière intervention
30 août 2011
10
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
Dernière intervention
30 août 2011
10
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
Dernière intervention
30 août 2011
10
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
Dernière intervention
1 avril 2012
1
0
Merci
merci pour la fonction sprintf ça peut toujours servir ailleur !!
Commenter la réponse de cs_lilj

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.