如何在C#中生成随机深色?

时间:2011-06-18 13:03:19

标签: c# colors

我以这种方式生成随机颜色:

 var random = new Random();
 var color = String.Format("#{0:X6}", random.Next(0x1000000)); 

如何排除比某个值更亮的颜色?

3 个答案:

答案 0 :(得分:9)

摆脱最亮色的“上半部分”的简单方法是通过

掩盖结果
random.Next(0x1000000) & 0x7F7F7F

答案 1 :(得分:7)

执行此操作的一种方法是在HSV/HSL colour-space中生成颜色,然后转换为RGB(维基百科文章告诉您如何执行此操作)。

HSV的优点是其中一个组件(V)对应于“亮度”。因此,如果您独立且随机地生成H,S和V,但将V限制为低值,那么您将获得深色。

答案 2 :(得分:0)

您可以通过NuGet安装ColorHelper库并使用下一个代码:

using ColorHelper;
RGB rgb = ColorGenerator.GetDarkRandomColor<RGB>();

您可以使用其他类代替 RGB 类。例如:十六进制 CMYK 或其他。