【问题标题】:Group color shadows to its base color c#将颜色阴影分组为其基色 c#
【发布时间】:2015-11-20 16:16:06
【问题描述】:

我想将图像像素颜色分类为一种基本颜色 例如 { Dim-gray, light-gray , silver }有基色====>“灰色” {中蓝、午夜蓝、海军蓝} ===>“蓝色” 等等

【问题讨论】:

标签: c# colors


【解决方案1】:

假设您想使用C#s Color 结构,您可以使用Dictionary 类执行以下操作:

Dictionary<Color, List<Color>> colorDict = new Dictionary<Color, List<Color>>();
colorDict.Add(Colors.Gray, new List<Color>() { Colors.DimGrey, Colors.Silver });
colorDict.Add(Colors.Blue, new List<Color>() { Colors.LightBlue, Colors.MidnightBlue });

然后,您将有一种方法来查找传入的每种颜色的Key 颜色,如下所示:

private Color FindKeyColour(Dictionary<Color, List<Color>> dict, Color c)
{
    if (!dict.ContainsKey(c))
    {
        //The colour is not a key
        return dict.FirstOrDefault(d => d.Value.Contains(c)).Key;
    }
    else
    {
        //The colour passed in is a key
        return c;
    }
}

注意:如果颜色c不是键或包含在值中,则需要修改此函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 2012-09-18
    • 2011-12-19
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多