我从系统中得到了一份Knowncolor列表,但是我想删除一些太暗的内容并使前景字符看不见.我尝试了以下代码,但KnownColor.Black仍然出现.无论如何,他们在黑暗中命令他们?
if (knownColor > KnownColor.Transparent && knownColor < KnownColor.MidnightBlue && knownColor < KnownColor.Navy)
{
//add it to our list
colors.Add(knownColor);
}
Run Code Online (Sandbox Code Playgroud)
您可以将已知颜色转换为Color实例,然后使用以下GetBrightness()方法比较亮度:
获取此Color结构的色调饱和度 - 亮度(HSB)亮度值.亮度范围从0.0到Blockquote 1.0,其中0.0表示黑色,1.0表示白色.
float brightness = Color.FromKnownColor(KnownColor.Transparent).GetBrightness();
Run Code Online (Sandbox Code Playgroud)
应用于您的示例,类似下面的内容应该工作(测试黑色和黄色):
KnownColor knownColor = KnownColor.Yellow;
float transparentBrightness = Color.FromKnownColor(KnownColor.Transparent).GetBrightness();
float midnightBlueBrightness = Color.FromKnownColor(KnownColor.MidnightBlue).GetBrightness();
float navyBrightness = Color.FromKnownColor(KnownColor.Navy).GetBrightness();
float knownColorBrightness = Color.FromKnownColor(knownColor).GetBrightness();
if (knownColorBrightness < transparentBrightness
&& knownColorBrightness > midnightBlueBrightness
&& knownColorBrightness > navyBrightness)
{
//add it to our list
colors.Add(knownColor);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1643 次 |
| 最近记录: |