Convertir code HSV vers RGB

Bonjour le forum

Je tourne en rond pour convertir un code HSV vers un code RGB

Je me suis inspiré de l'image si dessous pour réaliser le code :

cap

Image issue du site :

J'ai donc construit mon code comme ci-dessous mais ça ne marche pas vraiment ... Je pense qu'il y a un soucis au niveau du calcul de "X" :

Private Sub CalculV2()
Dim H, S, V, C, X, m, R2, G2, B2, R, G, B

H = 253
S = 108
V = 158

C = V * S
X = C * (1 - Abs((H / 60) Mod 2 - 1))
m = V - C

If H >= 0 And H < 60 Then R2 = C: G2 = X: B2 = 0
If H >= 60 And H < 120 Then R2 = X: G2 = C: B2 = 0
If H >= 120 And H < 180 Then R2 = 0: G2 = C: B2 = X
If H >= 180 And H < 240 Then R2 = 0: G2 = X: B2 = C
If H >= 240 And H < 300 Then R2 = X: G2 = 0: B2 = C
If H >= 300 And H < 360 Then R2 = C: G2 = 0: B2 = X

R = (R2 + m) * 255
G = (G2 + m) * 255
B = (B2 + m) * 255

MsgBox R & Chr(10) & G & Chr(10) & B

'===================
'---Message retourné : ---
'252,45
'108,53
'108,53
End Sub

Par avance merci de l’intérêt et de l'aide apportée au sujet

Bonjour,

J'avoue ne pas très bien comprendre le IF sur la valeur de H puisque la valeur de H est renseignée en début de code ?

H=253

Dans l'exemple là j'ai mis des valeurs fixes, dans mon code complet se sont des TextBox

De manière à ce qu'on travail tous sur la même base

bonjour,

selon ton document S et V doivent être compris entre 0 et 1, or tu leur donnes une valeur de 108 et 158.

Alors que pourrai représenter S et V ?

Effectivement je n'avais pas fait attention a ce détail très important !

Bonjour,

Attention à l'opérateur Mod de VBA. Le résultat ne correspond pas à celui de la fonction de feuille de calcul MOD().

Utiliser donc WorksheetFunction.Mod() ou cette fonction personnalisée.

Bon, j'écris peut-être une c******e !...

Cdlt.

Public Function WSMod(number As Double, divisor As Double) As Double
    WSMod = number - divisor * Int(number / divisor)
End Function

Ah bon a savoir ! Je teste ça quand je retourne au bureau, merci du tuyau !

Effectivement c'était bien le Mod qui posais problème !

Merci Jean-Eric, grace à toi tout fonctionne à la perfection !

Xmenpl tu avais raison aussi, dans mon code chez moi j'ai bien les valeurs dans les bon intervalles c'est moi qui est merdé en mettant le code ici

Merci à vous tous pour la contribution !!!

Rechercher des sujets similaires à "convertir code hsv rgb"