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

我这样生成一个随机颜色:

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

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

摆脱亮色的“上半部分”的一种非常简单的方法是通过掩盖结果

 random.Next(0x1000000) & 0x7F7F7F 

一种方法是在HSV / HSL颜色空间中生成颜色,然后转换为RGB(维基百科文章告诉您如何做到这一点)。

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