OVH Cloud OVH Cloud

Convertir une couleur hexadecimal en deci mal

5 réponses
Avatar
Thief13
Bonjour à tous

Voilà mon probleme : Je suis en train de dévellopper une application qui
permet à l'utilisateur de choisir la couleur dans l'image d'u header.

J'ai réussi à générer l'image avec la couleur que je veux, jusque là,
pas de problème.

Cepandant, GD utilise les 3 valeurs décimale de la couleur plutot que la
valeur hexa #quelquechose, et le seul colorpicker que j'ai trouvé donne
cette valeur en hexa, évidamment (en fait, j'en ai trouvé plusieurs,
mais outre le fait qu'il donnent tous la valeur en hexa, y'a aussi le
probleme de la licence)

donc ma question est simple : php implémente t il une fonction qui
permetrait de scinder la valeur hexa de la couleur dans ses trois valeur
décimale ?

Merci d'avance.

5 réponses

Avatar
Arnaud BERNARD-BRUNEL
Bonjour à tous

Voilà mon probleme : Je suis en train de dévellopper une application qui
permet à l'utilisateur de choisir la couleur dans l'image d'u header.

J'ai réussi à générer l'image avec la couleur que je veux, jusque là,
pas de problème.

Cepandant, GD utilise les 3 valeurs décimale de la couleur plutot que la
valeur hexa #quelquechose, et le seul colorpicker que j'ai trouvé donne
cette valeur en hexa, évidamment (en fait, j'en ai trouvé plusieurs,
mais outre le fait qu'il donnent tous la valeur en hexa, y'a aussi le
probleme de la licence)

donc ma question est simple : php implémente t il une fonction qui
permetrait de scinder la valeur hexa de la couleur dans ses trois valeur
décimale ?

Merci d'avance.
split pour couper

hex2dec pour convertir
faut un peut chercher sur la doc php de temps en temps www.php.net

Avatar
Olivier Miakinen

donc ma question est simple : php implémente t il une fonction qui
permetrait de scinder la valeur hexa de la couleur dans ses trois valeur
décimale ?


split pour couper


Euh... pas exactement, mais str_split peut convenir.

hex2dec pour convertir


Non plus : c'est hexdec. Il me semblait bien qu'il devait exister
quelque chose ! Mais finalement, ma solution avec sscanf est
peut-être la plus simple.

faut un peu chercher sur la doc php de temps en temps www.php.net


Oui.


Avatar
Olivier Miakinen
Le 25/09/2006 12:10, j'écrivais :

[...] Mais finalement, ma solution avec sscanf est
peut-être la plus simple.


Cette solution semble s'être perdue en route. Je la redonne à tout
hasard (non testée) :

$couleur = "#34FF7E";
list($rouge, $vert, $bleu) = sscanf($couleur, "#%2x%2x%2x");

Avatar
Olivier Miakinen

[...] GD utilise les 3 valeurs décimale de la couleur plutot que la
valeur hexa #quelquechose, et le seul colorpicker que j'ai trouvé donne
cette valeur en hexa, évidamment (en fait, j'en ai trouvé plusieurs,
mais outre le fait qu'il donnent tous la valeur en hexa, y'a aussi le
probleme de la licence)

donc ma question est simple : php implémente t il une fonction qui
permetrait de scinder la valeur hexa de la couleur dans ses trois valeur
décimale ?


J'ai peut-être mal cherché, mais je n'ai pas trouvé de fonction toute
faite, ne faisant que ça. En revanche, tu dois pouvoir le faire avec
sscanf :
list($rouge,$vert,$bleu) = sscanf("#34FF7E", "#%2x%2x%2x");

Si ça ne marche pas, il est toujours possible de se programmer soi-même
sa fonction de conversion, sachant que 0x7E = 0x7 * 0x10 + 0xE 7 * 16 + 14 = 112 + 14 = 126.

Avatar
Thief13
Merci beaucoup pour vos solutions, c'est exactement ce qu'il me fallais.
La doc de php.net est tres bien... quand on connais la fonction ! avec
ça, je vais m'en sortir grace à vous. merci beaucoup.