[SPIP Zone] fonctions d'images : petit coup de main (pb de couleurs)

Bonjour,

Je suis en train de rajouter une option au filtre du plugin "fonctions d'images" qui génére des palettes de couleurs.
Cette option permet de choisir le type de palette générée: monochromatique, complémentaire, camaieu etc. (c.f. http://www.colorschemedesigner.com).

Bon, rien de compliqué, ça fonctionne.
Par contre je me heurte à un problème lié à la colorimétrie.

Pour modifier une teinte, le plugin fait une conversion RGB -> HSV.
Un petit coup d'oeil à l'image suivante résumera mon souci : http://pix.toile-libre.org/upload/img/1350556480.png
Si j'ai bien compris, en HSV on opère sur le cercle chromatique B, et
là est le drame : j'aimerais utiliser le cercle chromatique A.

Faut-il opérer dans un autre espace de couleur (Cie LAB ou CMY) ?
La conversion en elle-même ne pose pas de problème, par contre j'ignore comment modifier la teinte dans un autre espace de couleurs.
En HSV, la teinte est représentée par une seule variable $H. L'incrémenter ou la décrémenter revient à faire bouger le 'curseur' sur le cercle chromatique, donnant donc une nouvelle teinte.
En LAB et en CMY par contre, je sèche.

Voilà, tout coup de main sera la bienvenu !

P.S.: pour résumer le problème.

Prenons la couleur rouge.
Actuellement le calcul de la couleur complémentaire me donne du Cyan.
Si j'arrive à faire en sorte que ce calcul me donne du vert, c'est gagné.

Le 18/10/2012 19:52, Pascal JPM a écrit :

Salut Charles,

As-tu regardé dans ce qui est dit dans Wikipédia ?

Teinte Saturation Valeur — Wikipédia
L*a*b* CIE 1976 — Wikipédia
Teinte saturation lumière — Wikipédia

Quadrichromie — Wikipédia mais je ne pense pas que cela
soit la solution, c'est réservé pour la synthèse "soustractive" (= papier).

En espérant que cela pourra t'aider un peu... mais j'avoue ne pas comprendre
pourquoi tu as deux cercles en HSV :wink:

Bonne soirée à toi.

Cordialement,

Pascal-JPM

Merci pour les liens.
Après moultes lectures sur le sujet, j'ai un peu avancé sur la question.
L'image que j'ai donné(e?) en exemple n'est pas très heureuse, celle-ci est plus claire : http://pix.toile-libre.org/upload/original/1350645106.png

Donc le cercle chromatique de gauche correspond au modèle "RYB" (rouge jaune bleu), issu de la synthèse soustractive des couleurs.
Le plugin utilise celui de droite, le RGB, pour manipuler les teintes des couleurs.
C'est le premier qui m'intéresse car d'après ce que j'ai lu ici et là, il est plus adapté à la combinaison des couleurs. Le point important, c'est que la complémentaire du rouge est le vert, et non le cyan comme en RGB.
De plus c'est celui utilisé par le site http://www.colorschemedesigner.com qui me sert de référence.

Par contre pour la suite, je suis toujours dans le flou.
Les articles traitant des modèles LAB et CMY sont illustrés indifféremment avec le cercle RYB ou RGB, donc je ne sais pas si un cercle est propre à un modèle en particulier. Où alors je suis passé à côté d'un truc.
L'article suivant à l'air de résumer plutôt bien la question : Color wheels, RGB, and CMY | Rip's Applied Mathematics Blog

Bon, ça avance doucement.

Merci beaucoup d'avoir pris le temps de répondre.
Ces concepts d'espaces de couleur et de synthèses soustractives ou additives sont petit à petit moins obscurs.
Alors après lecture de ton message, de divers blogs et articles à droite et à gauche, la roue chromatique RYB me semble quand même pertinente.
Je me demandais pourquoi elle était utilisée par les principaux générateurs de palettes (kuler.adobe.com, colorschemegenerator.com, gpick), finalement je suis tombé sur un message où les concepteurs de kuler expliquent leur choix : il ressort que son intérêt premier est de produire des combinaisons de couleurs visuellement harmonieuses.
Certes d'autres articles la décrivent comme physiquement incorrecte, la gamme de couleur est plus restreinte, mais mon but est de générer des palettes de couleurs plaisantes.

Donc le filtre utilisera par défaut la roue RGB mais je rajouterai une option pour utiliser la roue RYB, histoire de ménager la chèvre et le chou.
A ce propos Gpick permet d'ailleurs de passer d'une roue à l'autre, c'est bien pratique pour voir la différence des palettes produites.

Après techniquement, je suis toujours un peu dans le flou.
Pour conclure leur message les concepteurs de kuler parlent un peu technique :
"The hue distribution on the wheel is a different one than a pure hue to angle mapping. This mapping corresponds to the RYB color wheel (Red, yellow, blue) rather than the RGB color wheel."
Donc ils ne disent pas travailler dans un espace de couleurs autre que le RGB, mais juste qu'ils utilisent la roue RYB où les couleurs sont réparties différemment que sur la roue RGB.
En fait, je ne suis toujours pas sûr d'avoir saisi la relation roue chromatique / espace de couleurs.

Bon, merci encore en tout cas pour les éclaircissements

C.R.

Le 19/10/2012 14:22, Pascal JPM a écrit :

Salut Charles,

Je te confirme qu'il NE FAUT PAS UTILISER la synthèse soustractive, elle n'a
de "valeur" que pour le papier où l'on "empile" des couches de couleurs plus
ou moins opaque, qui à force "diminue" (donc "soustrait") la quantité de
lumière blanche reflétée par le dit papier...
C'est ce qu'on appel la synthèse "soustractive" très connue des imprimeurs
(donc je fais parti, je suis issu de l'École Estienne - Paris 13e - LA
référence en la matière).

En informatique, autrement dit derrière ton "écran", tu as des photophores
Rouge Vert Bleu qui sont plus ou moins allumés.
S'ils sont tous allumés, ça donne visuellement pour notre œil, du BLANC.
Ici, tu n'as pas de réflexion sur un support, c'est le support lui-même qui
émet et on appelle donc cela la synthèse "additive".

De plus il faut savoir que les espaces colorimétriques RVB, TSL, HVB ou CIE
LAB sont bien plus grands que l'espace du CMJN (CMYB en anglais), donc je ne
pense pas qu'il soit bon de partir sur une roue chromatique RYB, ça
restreindrait bien trop les couleurs potentiellement choisissables...

Tu peux t'en rendre compte facilement en comparant la saturation ("force
pigmentaire" de la couleur) et l'intensité des verts, des roses et des bleus
ciel. Une telle intensité de couleur n'est pas possible à obtenir en CMJN
sur certaines teintes.

Voilà, j'espère t'avoir un peu éclairer sur el problème qui est le tiens :wink:

Bonne fin de journée.

Cordialement,

Pascal Méchin alias Pascal-JPM

Pour clore le sujet, j'ai enfin trouvé la solution dans la librairie ColorLib pour processing : https://code.google.com/p/colorlib/source/browse/trunk/colorLib/src/colorLib/Swatch.java#260
Par chance, elle est sous licence MIT, il a suffit de transposer cette fonction en php, et le tour est joué.
Merci l'open-source !