Couleurs RGB et spectre de la lumière

Le
Hugolino
Salut,

Je voudrais dessiner (en PHP ou en javascript) un spectre lumineux dans
l'ordre croissant des longueurs d'onde (du violet à 380 nm au rouge à
780 nm).

Mais il me faudrait la correspondance entre chacun des 400 nanomètres de
l'étendue du spectre et leurs codes RGB qui permettrait d'afficher
cette couleur.

J'ai googlisé en vain ; j'ai écrit une procédure en php qui trace une
image en passant progressivement du bleu au rouge, donc avec le violet
au milieu :( et j'ai ni jaune ni vert

Mais peut-être y a-t-il ici un joyeux contribruiteur qui aurait une
solution à me proposer ?


Merci


--
Maintenant que je commence a me debrouiller pas mal en Perl, c'est
promis, je vais reflechir a un nouveau programme qui aurait pour charge
de filtrer la connerie sur les News.
Hugo (né il y a 1 411 504 295 secondes)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #22058841
Bonjour,

Le 15/01/2009 23:03, Hugolino a écrit :

Je voudrais dessiner (en PHP ou en javascript) un spectre lumineux dans
l'ordre croissant des longueurs d'onde (du violet à 380 nm au rouge à
780 nm).

Mais il me faudrait la correspondance entre chacun des 400 nanomètres de
l'étendue du spectre et leurs codes RGB qui permettrait d'afficher
cette couleur.



Je crois que tu t'es trompé de groupe. Je ne sais pas quel serait le
meilleur groupe pour y poser ta question, mais au moins je suis persuadé
que fr.comp.graphisme.multimedia serait bien meilleur que fciw.auteurs.

J'ai googlisé en vain ; j'ai écrit une procédure en php qui trace une
image en passant progressivement du bleu au rouge, donc avec le violet
au milieu :( et j'ai ni jaune ni vert...



Sans garantie, je crois bien que c'est le violet qui ne peut pas être
obtenu avec une longueur d'onde simple mais seulement par mélange. Mais
encore une fois...

Mais peut-être y a-t-il ici un joyeux contribruiteur qui aurait une
solution à me proposer ?



... encore une fois ce n'est ÀMHA pas le bon groupe.
METIS
Le #22058821
Hugolino wrote:
Salut,

Je voudrais dessiner (en PHP ou en javascript) un spectre
lumineux dans l'ordre croissant des longueurs d'onde (du violet à
380 nm au rouge à 780 nm).

Mais il me faudrait la correspondance entre chacun des 400
nanomètres de l'étendue du spectre et leurs codes RGB qui
permettrait d'afficher cette couleur.

J'ai googlisé en vain ; ...



==>Je t'ai fait ça, en espérant que ça te serve.
C'est un spectre du visible (à peu près fidèle ?) sur lequel j'ai mesuré les
valeurs principales RVB.

http://img405.imageshack.us/my.php?image=spectrevisiblevd5.jpg

Le point de mesure, c'est juste devant chaque flèche.

--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Oranges...
Sergio
Le #22058781
Hugolino a couché sur son écran :
Salut,

Je voudrais dessiner (en PHP ou en javascript) un spectre lumineux dans
l'ordre croissant des longueurs d'onde (du violet à 380 nm au rouge à
780 nm).

Mais il me faudrait la correspondance entre chacun des 400 nanomètres de
l'étendue du spectre et leurs codes RGB qui permettrait d'afficher
cette couleur.

J'ai googlisé en vain ; j'ai écrit une procédure en php qui trace une
image en passant progressivement du bleu au rouge, donc avec le violet
au milieu :( et j'ai ni jaune ni vert...



C'est une conversion TSL->RGB qu'il te faut.
(cf http://fr.wikipedia.org/wiki/Teinte_saturation_lumi%C3%A8re )
Avec T (teinte) variant de 0 à 360° (enfin dans l'autre sens pour toi)
et S et L à 100%.

La formule de conversion est dans l'article anglais du wikipédia :
http://en.wikipedia.org/wiki/HSL_and_HSV
(bon courage pour l'implémenter...)

En pratique, tu fais le calcul une bonne fois pour toute dans un
tableur et tu mets la table dans ton code PHP...

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Mickaël Wolff
Le #22058761
Olivier Miakinen a écrit :

Sans garantie, je crois bien que c'est le violet qui ne peut pas être
obtenu avec une longueur d'onde simple mais seulement par mélange. Mais
encore une fois...



Tu as oublié tes cours de physique ^^; le violet est une couleur de
longueur d'onde d'environ 400 nm. En-dessous, ce sont les UV.


Mais peut-être y a-t-il ici un joyeux contribruiteur qui aurait une
solution à me proposer ?



... encore une fois ce n'est ÀMHA pas le bon groupe.



Je pense que ce problème peut intéresser plusieurs auteurs du web.
Une ressource intéressante qui parle des couleurs :
conversion d'un modèle à l'autre mais ça doit se trouver.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Seeking for a position
SAM
Le #22058751
Le 1/15/09 11:03 PM, Hugolino a écrit :
Salut,

Je voudrais dessiner (en PHP ou en javascript) un spectre lumineux dans
l'ordre croissant des longueurs d'onde (du violet à 380 nm au rouge à
780 nm).

Mais il me faudrait la correspondance entre chacun des 400 nanomètres de
l'étendue du spectre et leurs codes RGB qui permettrait d'afficher
cette couleur.



Ha ha ha !

Quand on voit que ce n'est pas uniformément réparti :
Couleur Longueur d'onde
violet 380-450 nm --> 70
bleu 450-490 nm --> 40
vert 490-570 nm --> 80
jaune 570-585 nm --> 15
orange 585-620 nm --> 35
rouge 620-780 nm --> 160

Ce ne sera pas fastoche !
(il ne suffira sans doute pas de seulement faire varier régulièrement R
puis V puis B)
car ces couleurs sont en fonction des capacités de l'oeil humain :

J'ai googlisé en vain ; j'ai écrit une procédure en php qui trace une
image en passant progressivement du bleu au rouge, donc avec le violet
au milieu :( et j'ai ni jaune ni vert...



alors que ça existe en svg
ou en image :

Mais peut-être y a-t-il ici un joyeux contribruiteur qui aurait une
solution à me proposer ?



Chiper une image déjà faite sur un site ?

--
sm
SAM
Le #22058741
Le 1/16/09 10:36 AM, Sergio a écrit :
Hugolino a couché sur son écran :
Salut,

Je voudrais dessiner (en PHP ou en javascript) un spectre lumineux dans
l'ordre croissant des longueurs d'onde (du violet à 380 nm au rouge à
780 nm).

Mais il me faudrait la correspondance entre chacun des 400 nanomètres de
l'étendue du spectre et leurs codes RGB qui permettrait d'afficher
cette couleur.





Pour résumer ce que j'aurais pu patafioler par ailleurs :

C'est une conversion TSL->RGB qu'il te faut.



Peut importe le codage de la couleur, le plus difficile est que le
spectre n'est pas régulier : il ne suffit pas de faire varier
régulièrement RGB ou HSV ou TSV

Les formules de conversion ne sont après tout que des formules

Le blème est l'echeonement de ces couleurs suivant celles du spectre
lumineux.
En fait il faudrait avoir la formule de ce spectre.

--
sm
SAM
Le #22058731
Le 1/16/09 2:06 PM, Mickaël Wolff a écrit :
Olivier Miakinen a écrit :

Sans garantie, je crois bien que c'est le violet qui ne peut pas être
obtenu avec une longueur d'onde simple mais seulement par mélange. Mais
encore une fois...



Tu as oublié tes cours de physique ^^; le violet est une couleur de
longueur d'onde d'environ 400 nm. En-dessous, ce sont les UV.



Bon ... alors où est la formule de conversion

longueur d'onde -> couleur (étendue de la plage de)

le format de code couleur n'est pas trop important, il a plein de
formules pour les convertir ensuite (pour la charte du ng).

--
sm
Mickaël Wolff
Le #22058721
Sergio a écrit :

C'est une conversion TSL->RGB qu'il te faut.
(cf http://fr.wikipedia.org/wiki/Teinte_saturation_lumi%C3%A8re )
Avec T (teinte) variant de 0 à 360° (enfin dans l'autre sens pour toi)
et S et L à 100%.



Mais comment passe-t-on de la longueur d'onde à TSL ?

La formule de conversion est dans l'article anglais du wikipédia :
http://en.wikipedia.org/wiki/HSL_and_HSV
(bon courage pour l'implémenter...)



Faut pas pousser, les formules mathématiques sont simples. C'est pas
comme s'il fallait dériver.


--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Seeking for a position
Guy Gruais
Le #22058711
Bonjour,

Vous allez être infiniment heureux d'apprendre que Hugolino vient d'écrire
:

Je voudrais dessiner (en PHP ou en javascript) un spectre lumineux
dans l'ordre croissant des longueurs d'onde (du violet à 380 nm au
rouge à 780 nm).



Eeeeeeeeeeeeeuuuuuuuuuhhhhhhhhhhhhhhhhhh, là encore je suis tout sauf un
spécialiste.
Mais ici, peut-être :

http://semsci.u-strasbg.fr/rouedes.htm et là :
http://semsci.u-strasbg.fr/diagramm.htm

Faut pas m'en vouloir si je suis à côté de la plaque

--
Cordialement

(inverser siaurg pour retrouver gruais)
http://paysderetz.free.fr/
Olivier Miakinen
Le #22058681
Le 16/01/2009 14:06, Mickaël Wolff a écrit :

Sans garantie, je crois bien que c'est le violet qui ne peut pas être
obtenu avec une longueur d'onde simple mais seulement par mélange. Mais
encore une fois...



Tu as oublié tes cours de physique ^^; le violet est une couleur de
longueur d'onde d'environ 400 nm. En-dessous, ce sont les UV.



Pardon pour mes approximations, la page web où j'avais lu ça précisait
un peu plus où se trouvait la limitation, mais je ne me rappelle pas si
elle était dans le moyen d'obtenir cette couleur (sur écran, sur papier,
etc.) ou si elle était dans notre système de vision.

Je ne retrouve pas cette page, mais je viens d'en trouver une autre qui
me semble assez intéressante elle aussi :
http://www.glafreniere.com/optique/couleurs.htm

... encore une fois ce n'est ÀMHA pas le bon groupe.



Je pense que ce problème peut intéresser plusieurs auteurs du web.



Bien sûr ! Lesquels auteurs du web auraient tout intérêt à s'inscrire
au groupe fr.comp.graphisme.multimedia. Mais tu vois bien que la
discussion, en restant ici, n'obtient de réponses que de béotiens
comme moi, au lieu d'avoir les avis des experts.

Une ressource intéressante qui parle des couleurs :
conversion d'un modèle à l'autre mais ça doit se trouver.



Les tables de conversion entre différents modèles (RGB, HSV, HSL, CYMK,
etc.), ça se trouve. Mais ce n'était pas la question d'Hugolino qui
parlait de longueurs d'onde. Aussi, à moins qu'on ne me prouve le
contraire, je persiste et je signe : ce n'est pas le meilleur groupe
pour en parler.
Publicité
Poster une réponse
Anonyme