voila en fait c'est tout simple :
les couleurs web sont des multiples de 51 il suffit juste de faire une petite opération pour rétablir une valeur en multiple le plus proche, cette opération répétée pour les 3 composantes R V B et on a la couleur finale
Source / Exemple :
Private Sub Command1_Click()
Decompose Picture1.BackColor, R, v, b
'VOILA LES OPERATIONS QUI NOUS INTERESSE
R = CInt(R / 51) * 51
v = CInt(v / 51) * 51
b = CInt(b / 51) * 51
Picture2.BackColor = RGB(R, v, b)
Label3 = "R = " & R & " V = " & v & " B = " & b
End Sub
Private Sub Picture1_Click()
Com1.ShowColor
Picture1.BackColor = Com1.Color
Decompose Picture1.BackColor, R, v, b
Text1(0) = R
Text1(1) = v
Text1(2) = b
End Sub
Private Sub Text1_Change(Index As Integer)
On Local Error Resume Next
Picture1.BackColor = RGB(Val(Text1(0)), Val(Text1(1)), Val(Text1(2)))
End Sub
'cette procédure decompose la couleur en R,V,B
Public Sub Decompose(Couleur, R, v, b)
R = Int(Couleur Mod 256)
v = Int((Couleur - R) / 256 Mod 256)
b = Int((Couleur - R) / 256 / 256)
Verif R, v, b
End Sub
'procédure qui verifi les limites des composantes de la couleur rvb
Public Sub Verif(R, v, b)
If R < 0 Then R = 0
If v < 0 Then v = 0
If b < 0 Then b = 0
If R > 255 Then R = 255
If v > 255 Then v = 255
If b > 255 Then b = 255
End Sub
Conclusion :
voila, j'ai aussi mis le code pour avoir l'algo dans la compil, comme ca ca evite d'avoir besoin de se connecter.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.