[.Net] Convertir une couleur hexadécimale en Couleur

dotnet color converter

Toujours pour mon projet EasyLight, j’ai développé une petite fonction qui convertit un code couleur hexadécimal en Media.Color.

Le code hexadécimal peut être au format #FFFFFF ou bien au format FFFFFF. Le code retourne un System.Windows.Media.Color, ce qui vous permettra de récupérer ses propriétés R, G ou B :-)

'Fonction qui convertit une couleur hexadecimale en couleur
Private Shared Function HexToColor(ByVal hex As String) As System.Windows.Media.Color
	hex = hex.Replace("#", "")
	Dim r As Byte = 0
	Dim g As Byte = 0
	Dim b As Byte = 0
 
	If hex.Length = 6 Then '#RRGGBB
		r = Byte.Parse(hex.Substring(0, 2), Globalization.NumberStyles.AllowHexSpecifier)
		g = Byte.Parse(hex.Substring(2, 2), Globalization.NumberStyles.AllowHexSpecifier)
		b = Byte.Parse(hex.Substring(4, 2), Globalization.NumberStyles.AllowHexSpecifier)
	ElseIf hex.Length = 3 Then '#RGB
		r = Byte.Parse(hex(0).ToString() + hex(0).ToString(), Globalization.NumberStyles.AllowHexSpecifier)
		g = Byte.Parse(hex(1).ToString() + hex(1).ToString(), Globalization.NumberStyles.AllowHexSpecifier)
		b = Byte.Parse(hex(2).ToString() + hex(2).ToString(), Globalization.NumberStyles.AllowHexSpecifier)
	End If
	Return System.Windows.Media.Color.FromRgb(r, g, b)
End Function

Leave a Reply

Your email address will not be published. Required fields are marked *