IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

hexadécimal?


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut hexadécimal?
    Salut,

    Est-il possible de convertir une couleur RVB en HEXA?

    Merci

  2. #2
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    il suffit de convertir chaque valeur de canal et de concaténer
    http://fr2.php.net/dechex

  3. #3
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Oups je l'avais vu mais j'ai pas tilté

    Merci

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    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:

    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);
    J'ai par exemple: #C21C6.
    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

  5. #5
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    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;
    ?>

  6. #6
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Rha génial !
    Pour le 240 c'est pour éviter justement 255 255 255 et avoir du blanc sur du blanc

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir des valeurs hexadécimal en integer
    Par Bernard Martineau dans le forum Langage
    Réponses: 4
    Dernier message: 11/10/2005, 16h59
  2. Conversion hexadécimal -> décimal
    Par botanica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/10/2005, 09h13
  3. Conversion Texte en Hexadécimal (char*)
    Par kilowat dans le forum C++
    Réponses: 6
    Dernier message: 11/06/2005, 13h40
  4. Fonction de conversion de COLORREF en hexadécimal?
    Par charliejo dans le forum MFC
    Réponses: 4
    Dernier message: 21/02/2004, 18h25
  5. question sur l'hexadécimal
    Par Adrael dans le forum C
    Réponses: 9
    Dernier message: 12/06/2003, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo