Création d’une couleur C # à partir de valeurs HSL

Comment créer une couleur C # à partir de valeurs HSL?

Rich Newman a créé une classe HSLColor pouvant être utilisée à la place de System.Drawing.Color.

http://richnewman.wordpress.com/hslcolor-class/

Ajoutez la ligne suivante ci-dessous aux espaces de noms “using” dans votre fichier de code:

 using System.Runtime.InteropServices 

et avec P / Invoke, ajoutez la fonction suivante:

 [DllImport("shlwapi.dll")] public static extern int ColorHLSToRGB(int H, int L, int S); 

Dans n’importe quelle classe que vous voulez dans votre projet.

Si vous avez la couleur en teinte, luminance et saturation sous forme d’entiers, donnez ces valeurs à cette fonction et la couleur RVB souhaitée sera renvoyée sous forme d’entier. Utilisez ensuite ColorTranslator.FromWin32 pour convertir la couleur rgb renvoyée sous forme d’entier en structure System.Drawing.Color.

Une autre méthode consiste à utiliser la méthode de surcharge Color.FromArgb (Int32) pour créer la couleur souhaitée en tant que structure System.Drawing.Color à partir de cet entier.

Une autre méthode consiste à créer une instance de la classe ColorConverter , puis à appeler la méthode ConvertFrom et à lui donner le nombre entier de couleurs RVB renvoyé par la fonction ColorHLSToRGB, ou à appeler la méthode ConvertTo avec le même argument, mais dans le second argument, typeof(System.Drawing.Color) . Convertissez ensuite l’object renvoyé en type de structure System.Drawing.Color.

Le résultat est exactement ce que vous recherchez et attendez!

Vous pouvez également essayer d’autres algorithmes ou méthodes permettant de rechercher, découvrir et apprendre sur Internet, sur la conversion de couleurs RVB sous forme d’entier en structure System.Drawing.Color OU sur la conversion de valeurs HLS sous forme de trois entiers en System.Drawing. Structure de couleur!