Page 1 sur 1

Palette couleurs

Posté : 14 avr. 2008, 16:22
par dunbar
Bonjour,

Je voudrais savoir ci php a une fonction qui permet de créer une palette de couleurs ?

D'avance merci

Posté : 14 avr. 2008, 16:36
par Calimero
Bonjour,

Non, php n'a pas de fonction pour ça, parceque c'est facile à faire.

Quel est ton besoin ?

Posté : 14 avr. 2008, 16:44
par dunbar
Bonjour,

Non, php n'a pas de fonction pour ça, parceque c'est facile à faire.

Quel est ton besoin ?
Je propose modification d'un playeur via un panneau de gestion et je voudrais permettre de choisir les couleurs via une palette de couleurs cliquable :wink:
Au lieux de devoir recopier le code couleur .

Merci :wink:

Posté : 14 avr. 2008, 16:51
par Calimero
A ton service :-)

Je te propose une palette de couleurs sans image (car plus légère). Elle consistera simplement en liens cliquables qui auront l'aspect de boites colorées dans la couleur à choisir.

Est-ce que tu voudrais avoir plein de couleurs (style arc-en-ciel) ou juste quelques-unes que tu choisirais à l'avance ?

La première solution t'imposera d'apprendre plus de choses que la première (notamment comment coder une couleur RVB et la passer au format HTML), mais ce n'est pas très dur :-)

Posté : 14 avr. 2008, 17:08
par dunbar
Je veux proposer une palette la plus complète possible ........(probablement ta première solution)
Je ne demande pas que l'on me la fasse, je voudrais juste une piste car j'ai fait des recherches et je ne trouve rien en PHP. :wink:

A+

Posté : 14 avr. 2008, 23:25
par Calimero
Bon, ben on y va alors. On commence avec un peu de lecture :
http://fr.wikipedia.org/wiki/Couleurs_du_Web

Tout cela te donne les bases pour comprendre comment se forme une couleur RGB (Red, Green, Blue => Rouge, Vert, Bleu) : il s'agit de 3 valeurs entières, chacune comprise entre 0 et 255, représentant respectivement l'intensité de la couleur sur chacun des trois canaux de base qui, mélangés, permettent de faire n'importe quelle couleur sur ton écran. Le triplet 0;0;0 est le noir pur (absence totale de couleur), le triplet 255;255;255 est le blanc pur.

Sur le web, ces trois composantes sont exprimées en hexadécimal (tout simplement des symboles mathématiques en base 16), ce qui fait qu'une couleur web "complète" est toujours exprimée sur 6 caractères (chiffres de 0 à 9 et lettres de A à F), les deux premiers donnant la valeur rouge de cette couleur, et ainsi de suite. Autrement dit, notre noir pur se note #000000 (facile !) et le blanc #FFFFFF.

Si tu m'as bien suivi, tu as déjà compris que le rouge vif se note #FF0000, et ainsi de suite...

Comme compter en hexadécimal n'est pas très pratique, voici deux fonctions php qui vont beaucoup t'aider à manipuler tout ça :

De l'hexadécimal vers le décimal : http://fr3.php.net/hexdec
Du décimal vers l'hexadécimal : http://fr3.php.net/dechex

Le fait de savoir tout ça te permet déjà de faire des dégradés de couleur en pur html à l'aide de calculs simples. Mais on va devoir aller plus loin car ça ne suffit pas (ou alors pas sans mal...) pour afficher un arc-en-ciel ;-)

--

Il existe une autre façon d'exprimer une couleur déterminée à l'aide de nombres entiers, les graphistes connaissent ce système sous le nom de HSL (Hue, Saturation, Lightness, => Teinte, Saturation, Luminosité).

Tout comme pour le système RVB, ce sont trois nombres entiers dont la valeur est comprise entre 0 et 255, la combinaison des trois définissant une couleur précise. En revanche, on ne peut pas les traduire directement en code de couleur pour le web, il faut passer la couleur en RVB pour cela.

La meilleure explication que j'en ai trouvé (avec les formules mathématiques qui permettent de passer d'une couleur exprimée en HSL à une couleur RVB) est malheusement en anglais et se trouve ici : http://en.wikipedia.org/wiki/HSL_and_HSV . Intéresse toi tout particulièrement à la teinte (Hue).

Pourquoi c'est important ? Parceque la teinte te permet de faire varier la couleur en passant par tout le spectre de l'arc-en-ciel, ce que fait toute palette de couleurs digne de ce nom. Les valeurs de saturation et de luminosité sont moins importantes, tu peux les adapter (ou les forcer) suivant tes besoins.

Si ce n'est pas très clair, n'hésite pas à jouer avec la palette de ton éditeur d'images favori (The Gimp, photoshop, paint shop pro, ...) pour voir un peu comment tout ça se comporte quand tu passes du rouge au noir, du vert au jaune, du bleu au blanc...

--

Bon, peut-être que c'est déjà pas mal à avaler d'un coup tout ça non ? :lol:

Dans l'ordre, il faut donc :

- Générer des triplets (de simples tableaux php de trois valeurs numériques seront parfaits) correspondant à des valeurs HSL de (n,255,255). Il te faudra faire varier n entre 0 et 255 pour obtenir un bel arc-en-ciel.
- Coder la fonction permettant de passer d'un triplet HSL à un triplet RVB
- Coder la fonction permettant de passer d'un triplet RVB à un code couleur web
- Utiliser les 255 couleurs obtenues de façon jolie dans ta page

Prochaine étape, coder tout ça en PHP ;-)

Posté : 15 avr. 2008, 17:14
par dunbar
Prochaine étape, coder tout ça en PHP
peuffffffffff rien de bien compliquer :wink:

Blague a part merci je vais avaler tout ça et te tiens au courant merci pour cette trés belle explication ......

a+