Page 3 sur 4

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 10:07
par falsam
poshu a écrit :Au risque d'être encore ignoré...
Gagné :mrgreen:

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 10:16
par poshu
Lord Nelson a écrit :Oui ton code est mieux pour le TSL vers RGB mais chuuuuuuut le dit pas à Dobro qui a passé des heurs à chercher sur internet la solution, il pourrais se fâcher...
Il ne me semble pas que ce soit le genre de Dobro de se fâcher parce qu'il y a une meilleur solution proposée (en fait, il ne me semble pas que ce soit le cas de qui que ce soit, puisque ça serait très contreproductif).
Pour le coup, l'erreur à été de chercher sur le net plutôt que de poser les équations sur papier: c'était très facile de trouver deux valeurs, et puis le HUE c'est juste le placement d'une couleur sur un cercle. Reste plus qu'à diviser le cercle en 3 sections pour définir la dominante et après tout coule de source.

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 10:26
par Backup
bien joué Poshu :)

oui j'ai fait une recherche sur le NEt, car je me disais, qu'il doit bien trainer une solution (de facilité :mrgreen: )

ben en fait ...meme pas ! meme les pages de convertisseur faites en JavaScript, donnent des résultats completement faux

parce que un ou deux site balance un semblant de solution tout le monde a foncé dessus du coup on retrouve le meme Algo
partout (avec le nom des variables qui changent .. mais comme cet Algo est faux, tout le monde se plante ! :twisted:

ps: le Soldat inconnu ne fait pas exception, j'ai un vieux code de lui, qui contient la meme erreur .... :)

bref , Poshu, tu devrai vendre (ou publier) ton Algo, tu vas faire fortune , ou faire des heureux chez les étudiants :)

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 10:36
par Lord Nelson
Il ne me semble pas que ce soit le genre de Dobro de se fâcher parce qu'il y a une meilleur solution proposée (en fait, il ne me semble pas que ce soit le cas de qui que ce soit, puisque ça serait très contreproductif).
Pour le coup, l'erreur à été de chercher sur le net plutôt que de poser les équations sur papier: c'était très facile de trouver deux valeurs, et puis le HUE c'est juste le placement d'une couleur sur un cercle. Reste plus qu'à diviser le cercle en 3 sections pour définir la dominante et après tout coule de source.
Je plaisantais :)
bref , Poshu, tu devrai vendre (ou publier) ton Algo, tu vas faire fortune , ou faire des heureux chez les étudiants :)
Déjà il fais un heureux, moi alors encore merci :D

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 10:47
par poshu
Dobro a écrit :bien joué Poshu :)

oui j'ai fait une recherche sur le NEt, car je me disais, qu'il doit bien trainer une solution (de facilité :mrgreen: )

ben en fait ...meme pas ! meme les pages de convertisseur faites en JavaScript, donnent des résultats completement faux

parce que un ou deux site balance un semblant de solution tout le monde a foncé dessus du coup on retrouve le meme Algo
partout (avec le nom des variables qui changent .. mais comme cet Algo est faux, tout le monde se plante ! :twisted:

ps: le Soldat inconnu ne fait pas exception, j'ai un vieux code de lui, qui contient la meme erreur .... :)

bref , Poshu, tu devrai vendre (ou publier) ton Algo, tu vas faire fortune , ou faire des heureux chez les étudiants :)
Zut, je peux plus faire fortune parce que je l'ai posté ici et sur purebasicstreet alors?! Quel dommage xD

Pour le coup, je pense que j'aurai cherché sur le net aussi si ton post n'avait pas indiqué que tes propres recherches avaient été infructueuses... Du coup, stylo, papier et il s'agit de résoudre deux équation à une inconnue et de la trigonométrie (que j'ai contourné comme un lache vu que je sais pas faire de trigo...), rien de bien sorcier.

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 15:53
par Lord Nelson
Le problème est que maintenant je suis complètement pommer :? :lol:
Bha ouais, ya tellement de code différent et de solution miracle que j'en pers mon latin :mrgreen:

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 16:34
par falsam
Le code de Poshu ne te convient pas ?

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 16:40
par Fig
Y'a pleins de codes qui fonctionnent très bien dans ce fil pour passer de RGB à TSV...
L'arrondi, franchement, ce n'est pas si grave, même photoshop le fait, hein...

Fait ton choix, c'est tout.

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 16:45
par Lord Nelson
Tout les codes sont bien mais je sais pas le quel utiliser :P
Bien sur qu'il me conviens tout comme celui de Dobro qui est superbe et d'autres encore...

Mais les deux donne des valeurs différentes alors je suis perdus :?
Vous avez été nombreux à m'aider au delà de toutes mes espérances et je vous en suis très reconnaissant :)

De toute façon j'ai pris tout les codes, comme ça, je pourrais les réutiliser au besoin :)

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 17:58
par Micoute
Bonjour Lord Nelson, c'est normal qu'ils n'envoient pas les mêmes valeurs, vu qu'ils n'utilisent pas les mêmes calculs, je pense qu'il faut faire une synthèse de toutes ces procédures et garder celles dont le résultat est le plus proche de ce que tu recherches !

De toutes manières, il y aura toujours des erreurs d'arrondi, même en utilisant un système utilisant des grands nombres et ce n'est pas du à PureBasic, mais au système d'exploitation que tu utilises et moi-même qui ait un système Windows 7 x64, je préfère travailler en 32 bits.

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : ven. 14/févr./2014 23:14
par Lord Nelson
Salut Micoute,

Oui, je comprends.

Sinon, j'ai réussi en bidouillant à faire se jolie dégrader de couleurs mais il manque une partie :(
Image

Comme je vous l'ais déjà dis il me semble, j’essaie de crée un dégrader uniforme
Mais plus dans ce style là:
Image

Le but est de crée un dégrader de couleurs ou toutes les couleurs on la même luminosité
et qu'il n'y est pas deux couleurs identique dans le dégrader, dans le premier, toutes les couleurs son différente mais pas dans le deuxième !

Vous avez une idée de comment faire ceci ? :)

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : sam. 15/févr./2014 5:14
par poshu
Bah tiens, ca m'a permis de me rendre compte qu'il y avait une erreur dans ma fonction (si hue était comprise entre 300 et 301, le résultat était faux ^^; )

J'ai pompé le color picker de photoshop

Code : Tout sélectionner

Procedure Max(A,B)
	If A > B
		ProcedureReturn A
	Else
		ProcedureReturn B
	EndIf
EndProcedure

Procedure Min(A,B)
	If A < B
		ProcedureReturn A
	Else
		ProcedureReturn B
	EndIf
EndProcedure

Procedure.f Hue(RGB)
	Protected R, G, B, nImax, nImin, Hue.f
	If RGB < = $FFFFFF Or RGB > = 0
		R = Red(RGB)
		G = Green(RGB)
		B = Blue(RGB)
		
		nImax = Max(Max(r,b),g)
		nImin = Min(Min(r,b),g)
		
		If(nImax = r)   
			Hue=60*(g-b)/(nImax-nImin)
		ElseIf nImax = g
			Hue=60*(b-r)/(nImax-nImin)+120
		ElseIf nImax = b
			Hue=60*(r-g)/(nImax-nImin)+240
		EndIf
		
		If Hue<0
			Hue = 360 + Hue
		EndIf
	EndIf
	
	ProcedureReturn Hue
EndProcedure

Procedure.f Brightness(RGB)
	Protected R, G, B, nImax, Brightness.f
	
	If RGB < = $FFFFFF Or RGB > = 0
		R = Red(RGB)
		G = Green(RGB)
		B = Blue(RGB)
		
		nImax = Max(Max(r,b),g)
		
		Brightness = nImax/255
		
	EndIf
	
	ProcedureReturn Brightness * 100
EndProcedure

Procedure.f Saturation(RGB)
	Protected R, G, B, nImax, nImin, Saturation.f
	If RGB < = $FFFFFF Or RGB > = 0
		R = Red(RGB)
		G = Green(RGB)
		B = Blue(RGB)
		
		nImax = Max(Max(r,b),g)
		nImin = Min(Min(r,b),g)
		
		Saturation = 1 - nImin / nImax
		
	EndIf
	
	ProcedureReturn Saturation * 100
EndProcedure

Procedure HSBToRGB(Hue.f,Saturation.f,Brightness.f)
	Protected R,G,B
	
	Protected TopColor = Round(Brightness*255/100,#PB_Round_Nearest)
	
	Protected MinColor = Round((Saturation/100 -1)*-1*TopColor,#PB_Round_Nearest)
	
	Select Hue
		Case 61 To 180
			G = TopColor
			Hue = Round((Hue -120) * (TopColor - MinColor) / 60,#PB_Round_Nearest)
			
			If Hue > 0
				R = MinColor
				B = hue + R
			Else
				B = MinColor
				R = (hue - B) * -1
			EndIf
			
		Case 181 To 300
			B = TopColor
			Hue = Round((Hue -240) * (TopColor - MinColor) / 60,#PB_Round_Nearest)
			
			If Hue > 0
				G = MinColor
				R = hue + G
			Else
				R = MinColor
				G = (hue - R) * -1
			EndIf
			
		Default
			R = TopColor
			If hue > 300
				Hue - 360
			EndIf
			Hue = Round(Hue * (TopColor - MinColor) / 60,#PB_Round_Nearest)
			If hue > 0
				B = MinColor
				G  = hue + B
			Else
				G = MinColor
				B = (Hue - G) *-1
			EndIf
	EndSelect
	
	ProcedureReturn RGB(R,G,B)
EndProcedure

OpenWindow(0,0,0,256,256,"Color Gradiant",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CanvasGadget(0,0,0,256,256)
StartDrawing(CanvasOutput(0))
For loopY = 0 To 255
		For loopX = 0 To 255
			Plot(loopX,loopY,HSBToRGB(loopX*(360/255),100,100-(loopY/2.55)))
		Next
Next
StopDrawing()

Repeat
	Select WaitWindowEvent()
		Case #PB_Event_CloseWindow
			End
			
	EndSelect
ForEver
Ca te va?
Image

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : sam. 15/févr./2014 9:55
par Lord Nelson
Jolie :D
C'est je crois que c'est ce que je voulais 8)

Par contre j'ai vue que tu joue sur la luminosité alors que je pensais qu'il ne fallait pas la changer.
De plus plus tu descends (Vers la fin) et plus il y a des couleurs similaires.

Je te remercie beaucoup, je vais faire des petites bidouilles pour faire des expériences :P

Édit: Dobro, j'ai fais des tests avec ton code RGB_TSL et il subsistes ont dirait encore des erreurs, à ni rien comprendre 8O
Regarde se très court échantillon de couleurs sur un totale de 195841 couleurs donc la luminosité est de 100:
Couleur = 1048831 --> Teinte = 0.00000000000000000000, Saturation = 100.00000000000000000000, Luminosité = 100.00000000000000000000
Couleur = 1049087 --> Teinte = 0.00000000000000000000, Saturation = 99.60784149169921900000, Luminosité = 100.00000000000000000000
Couleur = 1049343 --> Teinte = 0.00000000000000000000, Saturation = 99.21568298339843800000, Luminosité = 100.00000000000000000000
Couleur = 1049599 --> Teinte = 0.00000000000000000000, Saturation = 98.82353210449218800000, Luminosité = 100.00000000000000000000
Couleur = 1049855 --> Teinte = 0.00000000000000000000, Saturation = 98.43137359619140600000, Luminosité = 100.00000000000000000000
Couleur = 1050111 --> Teinte = 0.00000000000000000000, Saturation = 98.03921508789062500000, Luminosité = 100.00000000000000000000
Couleur = 1050367 --> Teinte = 0.00000000000000000000, Saturation = 97.64705657958984400000, Luminosité = 100.00000000000000000000
Couleur = 1050623 --> Teinte = 0.00000000000000000000, Saturation = 97.25490570068359400000, Luminosité = 100.00000000000000000000
Couleur = 1050879 --> Teinte = 0.00000000000000000000, Saturation = 96.86274719238281300000, Luminosité = 100.00000000000000000000
Couleur = 1051135 --> Teinte = 0.00000000000000000000, Saturation = 96.47058868408203100000, Luminosité = 100.00000000000000000000
Couleur = 1051391 --> Teinte = 0.00000000000000000000, Saturation = 96.07843017578125000000, Luminosité = 100.00000000000000000000
Couleur = 1051647 --> Teinte = 0.00000000000000000000, Saturation = 95.68627166748046900000, Luminosité = 100.00000000000000000000
Couleur = 1051903 --> Teinte = 0.00000000000000000000, Saturation = 95.29412078857421900000, Luminosité = 100.00000000000000000000
Couleur = 1052159 --> Teinte = 0.00000000000000000000, Saturation = 94.90196228027343700000, Luminosité = 100.00000000000000000000
Couleur = 1052415 --> Teinte = 0.00000000000000000000, Saturation = 94.50980377197265600000, Luminosité = 100.00000000000000000000
Couleur = 1052671 --> Teinte = 0.00000000000000000000, Saturation = 94.11764526367187500000, Luminosité = 100.00000000000000000000
Couleur = 1052927 --> Teinte = 0.00000000000000000000, Saturation = 93.72548675537109400000, Luminosité = 100.00000000000000000000
Couleur = 1114367 --> Teinte = 0.00000000000000000000, Saturation = 100.00000000000000000000, Luminosité = 100.00000000000000000000
Couleur = 1114623 --> Teinte = 0.00000000000000000000, Saturation = 99.60784149169921900000, Luminosité = 100.00000000000000000000
Couleur = 1114879 --> Teinte = 0.00000000000000000000, Saturation = 99.21568298339843800000, Luminosité = 100.00000000000000000000
Couleur = 1115135 --> Teinte = 0.00000000000000000000, Saturation = 98.82353210449218800000, Luminosité = 100.00000000000000000000
Couleur = 1115391 --> Teinte = 0.00000000000000000000, Saturation = 98.43137359619140600000, Luminosité = 100.00000000000000000000
Couleur = 1115647 --> Teinte = 0.00000000000000000000, Saturation = 98.03921508789062500000, Luminosité = 100.00000000000000000000
Couleur = 1115903 --> Teinte = 0.00000000000000000000, Saturation = 97.64705657958984400000, Luminosité = 100.00000000000000000000
Couleur = 1116159 --> Teinte = 0.00000000000000000000, Saturation = 97.25490570068359400000, Luminosité = 100.00000000000000000000
Couleur = 1116415 --> Teinte = 0.00000000000000000000, Saturation = 96.86274719238281300000, Luminosité = 100.00000000000000000000
Couleur = 1116671 --> Teinte = 0.00000000000000000000, Saturation = 96.47058868408203100000, Luminosité = 100.00000000000000000000
Couleur = 1116927 --> Teinte = 0.00000000000000000000, Saturation = 96.07843017578125000000, Luminosité = 100.00000000000000000000
Couleur = 1117183 --> Teinte = 0.00000000000000000000, Saturation = 95.68627166748046900000, Luminosité = 100.00000000000000000000
Couleur = 1117439 --> Teinte = 0.00000000000000000000, Saturation = 95.29412078857421900000, Luminosité = 100.00000000000000000000
Couleur = 1117695 --> Teinte = 0.00000000000000000000, Saturation = 94.90196228027343700000, Luminosité = 100.00000000000000000000
Couleur = 1117951 --> Teinte = 0.00000000000000000000, Saturation = 94.50980377197265600000, Luminosité = 100.00000000000000000000
Couleur = 1118207 --> Teinte = 0.00000000000000000000, Saturation = 94.11764526367187500000, Luminosité = 100.00000000000000000000
Couleur = 1118463 --> Teinte = 0.00000000000000000000, Saturation = 93.72548675537109400000, Luminosité = 100.00000000000000000000
Couleur = 1118719 --> Teinte = 0.00000000000000000000, Saturation = 93.33333587646484400000, Luminosité = 100.00000000000000000000
Couleur = 1179903 --> Teinte = 0.00000000000000000000, Saturation = 100.00000000000000000000, Luminosité = 100.00000000000000000000
Couleur = 1180159 --> Teinte = 0.00000000000000000000, Saturation = 99.60784149169921900000, Luminosité = 100.00000000000000000000
Couleur = 1180415 --> Teinte = 0.00000000000000000000, Saturation = 99.21568298339843800000, Luminosité = 100.00000000000000000000
Couleur = 1180671 --> Teinte = 0.00000000000000000000, Saturation = 98.82353210449218800000, Luminosité = 100.00000000000000000000
Couleur = 1180927 --> Teinte = 0.00000000000000000000, Saturation = 98.43137359619140600000, Luminosité = 100.00000000000000000000
Couleur = 1181183 --> Teinte = 0.00000000000000000000, Saturation = 98.03921508789062500000, Luminosité = 100.00000000000000000000
Couleur = 1181439 --> Teinte = 0.00000000000000000000, Saturation = 97.64705657958984400000, Luminosité = 100.00000000000000000000
Couleur = 1181695 --> Teinte = 0.00000000000000000000, Saturation = 97.25490570068359400000, Luminosité = 100.00000000000000000000
Couleur = 1181951 --> Teinte = 0.00000000000000000000, Saturation = 96.86274719238281300000, Luminosité = 100.00000000000000000000
Couleur = 1182207 --> Teinte = 0.00000000000000000000, Saturation = 96.47058868408203100000, Luminosité = 100.00000000000000000000
Couleur = 1182463 --> Teinte = 0.00000000000000000000, Saturation = 96.07843017578125000000, Luminosité = 100.00000000000000000000
Couleur = 1182719 --> Teinte = 0.00000000000000000000, Saturation = 95.68627166748046900000, Luminosité = 100.00000000000000000000
Couleur = 1182975 --> Teinte = 0.00000000000000000000, Saturation = 95.29412078857421900000, Luminosité = 100.00000000000000000000
Couleur = 1183231 --> Teinte = 0.00000000000000000000, Saturation = 94.90196228027343700000, Luminosité = 100.00000000000000000000
Couleur = 1183487 --> Teinte = 0.00000000000000000000, Saturation = 94.50980377197265600000, Luminosité = 100.00000000000000000000
Couleur = 1183743 --> Teinte = 0.00000000000000000000, Saturation = 94.11764526367187500000, Luminosité = 100.00000000000000000000
Couleur = 1183999 --> Teinte = 0.00000000000000000000, Saturation = 93.72548675537109400000, Luminosité = 100.00000000000000000000
Couleur = 1184255 --> Teinte = 0.00000000000000000000, Saturation = 93.33333587646484400000, Luminosité = 100.00000000000000000000
Couleur = 1184511 --> Teinte = 0.00000000000000000000, Saturation = 92.94117736816406300000, Luminosité = 100.00000000000000000000
Couleur = 1245439 --> Teinte = 0.00000000000000000000, Saturation = 100.00000000000000000000, Luminosité = 100.00000000000000000000
Couleur = 1245695 --> Teinte = 0.00000000000000000000, Saturation = 99.60784149169921900000, Luminosité = 100.00000000000000000000
Couleur = 1245951 --> Teinte = 0.00000000000000000000, Saturation = 99.21568298339843800000, Luminosité = 100.00000000000000000000
Couleur = 1246207 --> Teinte = 0.00000000000000000000, Saturation = 98.82353210449218800000, Luminosité = 100.00000000000000000000
Couleur = 1246463 --> Teinte = 0.00000000000000000000, Saturation = 98.43137359619140600000, Luminosité = 100.00000000000000000000
Couleur = 1246719 --> Teinte = 0.00000000000000000000, Saturation = 98.03921508789062500000, Luminosité = 100.00000000000000000000
Couleur = 1246975 --> Teinte = 0.00000000000000000000, Saturation = 97.64705657958984400000, Luminosité = 100.00000000000000000000
Couleur = 1247231 --> Teinte = 0.00000000000000000000, Saturation = 97.25490570068359400000, Luminosité = 100.00000000000000000000
Couleur = 1247487 --> Teinte = 0.00000000000000000000, Saturation = 96.86274719238281300000, Luminosité = 100.00000000000000000000
Couleur = 1247743 --> Teinte = 0.00000000000000000000, Saturation = 96.47058868408203100000, Luminosité = 100.00000000000000000000
Couleur = 1247999 --> Teinte = 0.00000000000000000000, Saturation = 96.07843017578125000000, Luminosité = 100.00000000000000000000
Couleur = 1248255 --> Teinte = 0.00000000000000000000, Saturation = 95.68627166748046900000, Luminosité = 100.00000000000000000000
Couleur = 1248511 --> Teinte = 0.00000000000000000000, Saturation = 95.29412078857421900000, Luminosité = 100.00000000000000000000
Couleur = 1248767 --> Teinte = 0.00000000000000000000, Saturation = 94.90196228027343700000, Luminosité = 100.00000000000000000000
Couleur = 1249023 --> Teinte = 0.00000000000000000000, Saturation = 94.50980377197265600000, Luminosité = 100.00000000000000000000
Couleur = 1249279 --> Teinte = 0.00000000000000000000, Saturation = 94.11764526367187500000, Luminosité = 100.00000000000000000000
Couleur = 1249535 --> Teinte = 0.00000000000000000000, Saturation = 93.72548675537109400000, Luminosité = 100.00000000000000000000
Couleur = 1249791 --> Teinte = 0.00000000000000000000, Saturation = 93.33333587646484400000, Luminosité = 100.00000000000000000000
Couleur = 1250047 --> Teinte = 0.00000000000000000000, Saturation = 92.94117736816406300000, Luminosité = 100.00000000000000000000
Couleur = 1250303 --> Teinte = 0.00000000000000000000, Saturation = 92.54901885986328100000, Luminosité = 100.00000000000000000000
Couleur = 1310975 --> Teinte = 0.00000000000000000000, Saturation = 100.00000000000000000000, Luminosité = 100.00000000000000000000
Ne voie tu rien d'anormale ici, regarde bien...
C'est cyclique ont dirait alors que la couleurs est différente :?

Voici le code:

Code : Tout sélectionner

Enumeration 1
  #ImageCreation
EndEnumeration

; Minimum entre 2 Valeurs
Procedure.f Min(Val_1.f, Val_2.f, Val_3.f)
  If Val_1 <= Val_2
    Minimum2.f = Val_1
  Else
    Minimum2.f = Val_2
  EndIf
  If Val_3 <= Minimum2.f
    Minimum2.f = Val_3
  EndIf
  ProcedureReturn Minimum2
EndProcedure

; Maximum entre 2 Valeurs
Procedure.f Max(Val_1.f, Val_2.f, Val_3.f)
  If Val_1 <= Val_2
    Maximum2.f = Val_2
  Else
    Maximum2.f = Val_1
  EndIf
  If Val_3 >= Maximum2.f
    Maximum2.f = Val_3
  EndIf
  ProcedureReturn Maximum2
EndProcedure

; Convertie la couleur en Teinte, Saturation et luminosité
Procedure.s RgbToTSL(Couleur.i, NombreDeDecimale.i = 0)
  
  If NombreDeDecimale.i < 0
    NombreDeDecimale.i = 0
  ElseIf NombreDeDecimale.i > 10
    NombreDeDecimale.i = 10
  EndIf
  
  ; By Dobro d'apres:
  ; http://www.la-photo-en-faits.com/2013/05/RVB-CMJN-TSL-conversion-definition.html et http://www.irem.univ-montp2.fr/optionsciences/20052006/nuanciers.pdf
  
  R = Red(Couleur.i)
  V = Green(Couleur.i)
  B = Blue(Couleur.i)
  
  Maxi = Max(R,V,B)
  Mini = Min(R,V,B)
  
  C = (Maxi - mini)
  
  If Maxi = R
    T.f = 60 * (V - B) / C
  EndIf
  
  If Maxi = V
    T.f = 60 * (2 + (B - R) / C)
  EndIf
  
  If Maxi=B
    T.f = 60 * (4 + (B - R) / C)
  EndIf
    
  S.f = 100 * C / Maxi
  L.f = 100 * Maxi / 255
  
  If T.f <= 0
    T.f = 0
  EndIf
  
  If L.f <= 0
    L.f = 0
  EndIf
  
  If S.f <= 0
    S.f=0
  EndIf
  
;   Debug "T.f = " + T.f
;   Debug "S.f = " + S.f
;   Debug "L.f = " + L.f
;   Debug ""
  
  Sortie.s = StrF(T, NombreDeDecimale.i) + "," + StrF(S, NombreDeDecimale.i) + "," + StrF(L, NombreDeDecimale.i) + "," + Str(R) + "," + Str(V) + "," + Str(B)
  ProcedureReturn Sortie.s
  
EndProcedure

; Création d'une liste qui contiendrat toutes les couleurs don la luminosité est égale strictement à 100.
NewList MaListeDeCouleur.s()

CreateFile(1, "Table de couleurs.txt")

; Je passe en revue toutes les couleurs 24 Bit.
For Couleur.i = 0 To 16777215
  
  TSL.s = RgbToTSL(Couleur.i, 20) ; Je convertie la couleur en court en niveau de Teinte, Saturation et Luminosité.
  
  Teinte.f = ValF(StringField(TSL.s, 1, ",")) ; Récupération du niveau de Teinte de la couleur en court.
  Saturation.f = ValF(StringField(TSL.s, 2, ",")) ; Récupération du niveau de Saturation de la couleur en court.
  Luminosite.f = ValF(StringField(TSL.s, 3, ",")) ; Récupération du niveau de Luminosité de la couleur en court.
  
  ; Je vais porendre en compte que les couleurs ayant un niveau de luminosité égale
  ; strictement à 100 pour que toutes les couleurs est éxactement la même luminosité.
  If Luminosite = 100 ; Si la couleur en court a un niveau de luminosité striquement égale à 100.
    
    WriteStringN(1, "Couleur = " + Str(Couleur.i) + " --> Teinte = " + StrF(Teinte.f, 20) + ", Saturation = " + StrF(Saturation.f, 20) + ", Luminosité = " + StrF(Luminosite.f, 20))
    
  EndIf
  
Next

CloseFile(1)
Ensuite j'ai trier le fichier à partir d'une position avec un logiciel.
Tu remarquera que j'ai très légèrement modifier ton code hein mais ça ne change rien au résultat je pense :wink:

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : sam. 15/févr./2014 12:19
par poshu
Lord Nelson a écrit :Jolie :D
C'est je crois que c'est ce que je voulais 8)

Par contre j'ai vue que tu joue sur la luminosité alors que je pensais qu'il ne fallait pas la changer.
De plus plus tu descends (Vers la fin) et plus il y a des couleurs similaires.
Bah là, j'ai fait un dégradé basé sur la brightness et le hue parce que c'est ce qui m'est venu en regardant la photo que tu avais posté, mais le résultat sera équivalant si tu switch entre intensity et brightness, sauf qu'au lieu de tendre vers le noir, ça va tendre vers le blanc... Le problème, c'est que je n'arrive pas à comprendre exactement ce que tu veux, donc je peux pas le coder pour toi :/

Re: Comment calculer, teinte, saturation, luminosité couleur

Publié : sam. 15/févr./2014 12:31
par Lord Nelson
Bonjour poschu,

Tu as vue le jolie dégrader (Le premier) que j'ai fais ?
Il est bien lui mais il manque une partie :(

Je ne sais pas pourquoi mais tu voie comme j'ai dit et bien je cherche à crée une jolie palette dans se style
avec aucune couleur similaire, dans le premier dégrader aucune couleurs n'est identique :)

Mais en faite je viens de me rendre compte au post plus haut que la procédure de Dobro à des soucis...
Je ne veux pas t’embêter d'avantage...

Je suis très confus en plus parce que j'arrive pas à faire se que je veux :?
Peut être que je devrais laissez tomber ?