Salut,
Est-il possible de convertir une couleur RVB en HEXA?
Merci
Salut,
Est-il possible de convertir une couleur RVB en HEXA?
Merci
il suffit de convertir chaque valeur de canal et de concaténer
http://fr2.php.net/dechex
Oups je l'avais vu mais j'ai pas tilté![]()
Merci![]()
Ah non en fait c'est pas résolu
Pour une couleur héxadécimale, il faut 6 caractères (est-ce ce que tu appelles la valeur de canal?).
Moi avec ce code:
J'ai par exemple: #C21C6.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $rhexa = dechex(rand (0, 240)); $vhexa = dechex(rand (0, 240)); $bhexa = dechex(rand (0, 240)); $color = strtoupper('#'.$rhexa.$vhexa.$bhexa);
Mais ça existe pas en couleur...
Or je ne vois pas comment comment faire. Faut-il rajouter des ff, ou des 00, et comment?
Merci
Effectivement il te faut remplir le canal hexadecimal d'un zéro sur la gauche.
Un canal, est la valeur d'une des trois couleurs R V ou B
Et sinon il faut rajouter un Zero car 0A = A, en base 16, comme 010 = 10 en base 10.
Par contre je n'ai pas comris ta limite de 240.
(240,240,240 = F0F0F0)
255 me semble plus appropié.
(255,255,255 = FFFFFF)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php $rhexa = rand (0, 240); $vhexa = rand (0, 240); $bhexa = rand (0, 240); echo "canal rouge, base 10 : ".$rhexa."<br/>"; echo "canal vert, base 10 : ".$vhexa."<br/>"; echo "canal bleu, base 10 : ".$bhexa."<br/>"; $rhexa = dechex($rhexa ); $vhexa = dechex( $vhexa ); $bhexa = dechex($bhexa ); $rhexa = strlen($rhexa)==1?"0".$rhexa:$rhexa; $vhexa = strlen($vhexa)==1?"0".$vhexa:$vhexa; $bhexa = strlen($bhexa)==1?"0".$bhexa:$bhexa; $color = strtoupper('#'.$rhexa.$vhexa.$bhexa); echo "canal rouge, base 16 : ".$rhexa."<br/>"; echo "canal vert, base 16 : ".$vhexa."<br/>"; echo "canal bleu, base 16 : ".$bhexa."<br/>"; echo $color; ?>
Rha génial !
Pour le 240 c'est pour éviter justement 255 255 255 et avoir du blanc sur du blanc
Merci !
Partager