从HSL值创建C#颜色

时间:2010-11-03 13:38:43

标签: c# colors

如何根据HSL值创建C#颜色?

1 个答案:

答案 0 :(得分:13)

将以下行添加到代码文件中的“using”命名空间中:

using System.Runtime.InteropServices

并使用P / Invoke添加以下函数:

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

在项目中您想要的任何课程。

如果您将色调,亮度和饱和度的颜色作为整数,则将这些值赋予该函数,并将所需的RGB颜色作为整数返回。 然后使用ColorTranslator.FromWin32将返回的rgb颜色转换为整数到System.Drawing.Color结构。

另一种方法是使用Color.FromArgb(Int32)重载方法,从该整数创建所需的颜色作为System.Drawing.Color结构。

另一种方法是创建 ColorConverter 类的实例,然后调用 ConvertFrom 方法,并为其提供从中返回的RGB颜色整数ColorHLSToRGB函数,或使用相同的第一个参数调用 ConvertTo 方法,但在第二个参数input typeof(System.Drawing.Color)中调用。然后将返回的对象转换为System.Drawing.Color结构类型。

结果正是您所追求和期待的结果!

您还可以尝试其他算法或方法,您可以在互联网上搜索,查找和学习,如何将RGB颜色转换为整数到System.Drawing.Color结构或如何将HLS值转换为三个整数到系统.Drawing.Color结构!