)
)
)
NeoB a formulé ce vendredi :
>> )
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a formulé ce vendredi :
>> )
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a formulé ce vendredi :
>> )
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a formulé ce vendredi :
>> )
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a formulé ce vendredi :
>> )
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a formulé ce vendredi :
>> )
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a formulé ce vendredi :)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites de
façon claire. Avec le système hsp tu peux facilement jouer sur la teinte
de ta couleur sa saturation ainsi que sa luminausité comme je viens de
te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
NeoB a formulé ce vendredi :
)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites de
façon claire. Avec le système hsp tu peux facilement jouer sur la teinte
de ta couleur sa saturation ainsi que sa luminausité comme je viens de
te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
NeoB a formulé ce vendredi :)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites de
façon claire. Avec le système hsp tu peux facilement jouer sur la teinte
de ta couleur sa saturation ainsi que sa luminausité comme je viens de
te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
Oui bien entendu ! Si cela peut répondre à mon besoin.
Guy
"Loïc" a écrit dans le message de
news:NeoB a formulé ce vendredi :)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
Oui bien entendu ! Si cela peut répondre à mon besoin.
Guy
"Loïc" <l@nospam.net> a écrit dans le message de
news:mn.2a7d7d58430939e8.16898@nospam.net...
NeoB a formulé ce vendredi :
)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
Oui bien entendu ! Si cela peut répondre à mon besoin.
Guy
"Loïc" a écrit dans le message de
news:NeoB a formulé ce vendredi :)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
NeoB a pensé très fort :Oui bien entendu ! Si cela peut répondre à mon besoin.
Guy
"Loïc" a écrit dans le message de
news:NeoB a formulé ce vendredi :)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
Désolé pour le retard....
Copie/colle le code suivant dans un projet contenant une feuille
contenant un bouton Command1
Si tu as des questions n'hésite pas.
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'Note: RGB(0...255,0...255,0...255) et HSL(0...360,0...1,0...1)
Public Sub RGBtoHSL(ByVal R As Byte, ByVal G As Byte, ByVal B As Byte, H
As Single, S As Single, L As Single)
Dim Max As Single
Dim Min As Single
Dim delta As Single
Dim rR As Single, rG As Single, rB As Single
rR = R / 255: rG = G / 255: rB = B / 255
Max = pvMaximum(rR, rG, rB)
Min = pvMinimum(rR, rG, rB)
L = (Max + Min) / 2
If (Max = Min) Then
S = 0
H = 0
Else
If (L <= 0.5) Then
S = (Max - Min) / (Max + Min)
Else
S = (Max - Min) / (2 - Max - Min)
End If
delta = Max - Min
If (rR = Max) Then
H = (rG - rB) / delta
ElseIf (rG = Max) Then
H = 2 + (rB - rR) / delta
ElseIf (rB = Max) Then
H = 4 + (rR - rG) / delta
End If
End If
End Sub
Public Sub HSLtoRGB(ByVal H As Single, ByVal S As Single, ByVal L As
Single, R As Byte, G As Byte, B As Byte)
Dim rR As Single, rG As Single, rB As Single
Dim Min As Single, Max As Single
If (S = 0) Then
rR = L: rG = L: rB = L
Else
If (L <= 0.5) Then
Min = L * (1 - S)
Else
Min = L - S * (1 - L)
End If
Max = 2 * L - Min
If (H < 1) Then
rR = Max
If (H < 0) Then
rG = Min
rB = rG - H * (Max - Min)
Else
rB = Min
rG = H * (Max - Min) + rB
End If
ElseIf (H < 3) Then
rG = Max
If (H < 2) Then
rB = Min
rR = rB - (H - 2) * (Max - Min)
Else
rR = Min
rB = (H - 2) * (Max - Min) + rR
End If
Else
rB = Max
If (H < 4) Then
rR = Min
rG = rR - (H - 4) * (Max - Min)
Else
rG = Min
rR = (H - 4) * (Max - Min) + rG
End If
End If
End If
R = rR * 255: G = rG * 255: B = rB * 255
End Sub
Private Function pvMaximum(rR As Single, rG As Single, rB As Single) As
Single
If (rR > rG) Then
If (rR > rB) Then pvMaximum = rR Else pvMaximum = rB
Else
If (rB > rG) Then pvMaximum = rB Else pvMaximum = rG
End If
End Function
Private Function pvMinimum(rR As Single, rG As Single, rB As Single) As
Single
If (rR < rG) Then
If (rR < rB) Then pvMinimum = rR Else pvMinimum = rB
Else
If (rB < rG) Then pvMinimum = rB Else pvMinimum = rG
End If
End Function
Public Function RotateH40(ByVal H As Long) As Long
If (H > 200) Then RotateH40 = H - 240 Else RotateH40 = H
End Function
Private Sub Command1_Click()
Dim nRedValue As Byte
Dim nGreenValue As Byte
Dim nBlueValue As Byte
Dim nHue As Single
Dim nSaturation As Single
Dim nLightness As Single
Dim nCpt As Integer
'je prends les valeurs d'un bleu très foncé pour l'éclaircir dans la
prochaine boucle
nRedValue = 0
nGreenValue = 1
nBlueValue = 20
For nCpt = 1 To 255
Call RGBtoHSL(nRedValue, nGreenValue, nBlueValue, nHue,
nSaturation, nLightness)
nLightness = nLightness + 0.004 '0.004 = 1 / 255
If nLightness > 1 Then
nLightness = 1
End If
Call HSLtoRGB(nHue, nSaturation, nLightness, nRedValue,
nGreenValue, nBlueValue)
Me.BackColor = RGB(nRedValue, nGreenValue, nBlueValue)
Sleep (10)
Next nCpt
End Sub
NeoB a pensé très fort :
Oui bien entendu ! Si cela peut répondre à mon besoin.
Guy
"Loïc" <l@nospam.net> a écrit dans le message de
news:mn.2a7d7d58430939e8.16898@nospam.net...
NeoB a formulé ce vendredi :
)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
Désolé pour le retard....
Copie/colle le code suivant dans un projet contenant une feuille
contenant un bouton Command1
Si tu as des questions n'hésite pas.
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'Note: RGB(0...255,0...255,0...255) et HSL(0...360,0...1,0...1)
Public Sub RGBtoHSL(ByVal R As Byte, ByVal G As Byte, ByVal B As Byte, H
As Single, S As Single, L As Single)
Dim Max As Single
Dim Min As Single
Dim delta As Single
Dim rR As Single, rG As Single, rB As Single
rR = R / 255: rG = G / 255: rB = B / 255
Max = pvMaximum(rR, rG, rB)
Min = pvMinimum(rR, rG, rB)
L = (Max + Min) / 2
If (Max = Min) Then
S = 0
H = 0
Else
If (L <= 0.5) Then
S = (Max - Min) / (Max + Min)
Else
S = (Max - Min) / (2 - Max - Min)
End If
delta = Max - Min
If (rR = Max) Then
H = (rG - rB) / delta
ElseIf (rG = Max) Then
H = 2 + (rB - rR) / delta
ElseIf (rB = Max) Then
H = 4 + (rR - rG) / delta
End If
End If
End Sub
Public Sub HSLtoRGB(ByVal H As Single, ByVal S As Single, ByVal L As
Single, R As Byte, G As Byte, B As Byte)
Dim rR As Single, rG As Single, rB As Single
Dim Min As Single, Max As Single
If (S = 0) Then
rR = L: rG = L: rB = L
Else
If (L <= 0.5) Then
Min = L * (1 - S)
Else
Min = L - S * (1 - L)
End If
Max = 2 * L - Min
If (H < 1) Then
rR = Max
If (H < 0) Then
rG = Min
rB = rG - H * (Max - Min)
Else
rB = Min
rG = H * (Max - Min) + rB
End If
ElseIf (H < 3) Then
rG = Max
If (H < 2) Then
rB = Min
rR = rB - (H - 2) * (Max - Min)
Else
rR = Min
rB = (H - 2) * (Max - Min) + rR
End If
Else
rB = Max
If (H < 4) Then
rR = Min
rG = rR - (H - 4) * (Max - Min)
Else
rG = Min
rR = (H - 4) * (Max - Min) + rG
End If
End If
End If
R = rR * 255: G = rG * 255: B = rB * 255
End Sub
Private Function pvMaximum(rR As Single, rG As Single, rB As Single) As
Single
If (rR > rG) Then
If (rR > rB) Then pvMaximum = rR Else pvMaximum = rB
Else
If (rB > rG) Then pvMaximum = rB Else pvMaximum = rG
End If
End Function
Private Function pvMinimum(rR As Single, rG As Single, rB As Single) As
Single
If (rR < rG) Then
If (rR < rB) Then pvMinimum = rR Else pvMinimum = rB
Else
If (rB < rG) Then pvMinimum = rB Else pvMinimum = rG
End If
End Function
Public Function RotateH40(ByVal H As Long) As Long
If (H > 200) Then RotateH40 = H - 240 Else RotateH40 = H
End Function
Private Sub Command1_Click()
Dim nRedValue As Byte
Dim nGreenValue As Byte
Dim nBlueValue As Byte
Dim nHue As Single
Dim nSaturation As Single
Dim nLightness As Single
Dim nCpt As Integer
'je prends les valeurs d'un bleu très foncé pour l'éclaircir dans la
prochaine boucle
nRedValue = 0
nGreenValue = 1
nBlueValue = 20
For nCpt = 1 To 255
Call RGBtoHSL(nRedValue, nGreenValue, nBlueValue, nHue,
nSaturation, nLightness)
nLightness = nLightness + 0.004 '0.004 = 1 / 255
If nLightness > 1 Then
nLightness = 1
End If
Call HSLtoRGB(nHue, nSaturation, nLightness, nRedValue,
nGreenValue, nBlueValue)
Me.BackColor = RGB(nRedValue, nGreenValue, nBlueValue)
Sleep (10)
Next nCpt
End Sub
NeoB a pensé très fort :Oui bien entendu ! Si cela peut répondre à mon besoin.
Guy
"Loïc" a écrit dans le message de
news:NeoB a formulé ce vendredi :)
Salut, voici la méthode que j'utilise pour faire ce genre de chose.
je converti les valeur rbg de la couleur en HSL (Teinte, saturation,
luminance).
A partir de cette valeur hsl j'incrémente la valeur correspondant à la
luminausité pour éclaircir la couleur ou je la décrémente pour
l'assombrir puis ensuite je fais une nouvelle convertion HSL => rgb.
Dans le système RGB c'est très compliqué de faire ce que tu souhaites
de façon claire. Avec le système hsp tu peux facilement jouer sur la
teinte de ta couleur sa saturation ainsi que sa luminausité comme je
viens de te le montrer.
Souhaites tu avoir une classe de convertion RGB => HSL ,HSL=>RGB ?
Loïc
--
Loïc
Désolé pour le retard....
Copie/colle le code suivant dans un projet contenant une feuille
contenant un bouton Command1
Si tu as des questions n'hésite pas.
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'Note: RGB(0...255,0...255,0...255) et HSL(0...360,0...1,0...1)
Public Sub RGBtoHSL(ByVal R As Byte, ByVal G As Byte, ByVal B As Byte, H
As Single, S As Single, L As Single)
Dim Max As Single
Dim Min As Single
Dim delta As Single
Dim rR As Single, rG As Single, rB As Single
rR = R / 255: rG = G / 255: rB = B / 255
Max = pvMaximum(rR, rG, rB)
Min = pvMinimum(rR, rG, rB)
L = (Max + Min) / 2
If (Max = Min) Then
S = 0
H = 0
Else
If (L <= 0.5) Then
S = (Max - Min) / (Max + Min)
Else
S = (Max - Min) / (2 - Max - Min)
End If
delta = Max - Min
If (rR = Max) Then
H = (rG - rB) / delta
ElseIf (rG = Max) Then
H = 2 + (rB - rR) / delta
ElseIf (rB = Max) Then
H = 4 + (rR - rG) / delta
End If
End If
End Sub
Public Sub HSLtoRGB(ByVal H As Single, ByVal S As Single, ByVal L As
Single, R As Byte, G As Byte, B As Byte)
Dim rR As Single, rG As Single, rB As Single
Dim Min As Single, Max As Single
If (S = 0) Then
rR = L: rG = L: rB = L
Else
If (L <= 0.5) Then
Min = L * (1 - S)
Else
Min = L - S * (1 - L)
End If
Max = 2 * L - Min
If (H < 1) Then
rR = Max
If (H < 0) Then
rG = Min
rB = rG - H * (Max - Min)
Else
rB = Min
rG = H * (Max - Min) + rB
End If
ElseIf (H < 3) Then
rG = Max
If (H < 2) Then
rB = Min
rR = rB - (H - 2) * (Max - Min)
Else
rR = Min
rB = (H - 2) * (Max - Min) + rR
End If
Else
rB = Max
If (H < 4) Then
rR = Min
rG = rR - (H - 4) * (Max - Min)
Else
rG = Min
rR = (H - 4) * (Max - Min) + rG
End If
End If
End If
R = rR * 255: G = rG * 255: B = rB * 255
End Sub
Private Function pvMaximum(rR As Single, rG As Single, rB As Single) As
Single
If (rR > rG) Then
If (rR > rB) Then pvMaximum = rR Else pvMaximum = rB
Else
If (rB > rG) Then pvMaximum = rB Else pvMaximum = rG
End If
End Function
Private Function pvMinimum(rR As Single, rG As Single, rB As Single) As
Single
If (rR < rG) Then
If (rR < rB) Then pvMinimum = rR Else pvMinimum = rB
Else
If (rB < rG) Then pvMinimum = rB Else pvMinimum = rG
End If
End Function
Public Function RotateH40(ByVal H As Long) As Long
If (H > 200) Then RotateH40 = H - 240 Else RotateH40 = H
End Function
Private Sub Command1_Click()
Dim nRedValue As Byte
Dim nGreenValue As Byte
Dim nBlueValue As Byte
Dim nHue As Single
Dim nSaturation As Single
Dim nLightness As Single
Dim nCpt As Integer
'je prends les valeurs d'un bleu très foncé pour l'éclaircir dans la
prochaine boucle
nRedValue = 0
nGreenValue = 1
nBlueValue = 20
For nCpt = 1 To 255
Call RGBtoHSL(nRedValue, nGreenValue, nBlueValue, nHue,
nSaturation, nLightness)
nLightness = nLightness + 0.004 '0.004 = 1 / 255
If nLightness > 1 Then
nLightness = 1
End If
Call HSLtoRGB(nHue, nSaturation, nLightness, nRedValue,
nGreenValue, nBlueValue)
Me.BackColor = RGB(nRedValue, nGreenValue, nBlueValue)
Sleep (10)
Next nCpt
End Sub