Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按调色板对颜色数组进行排序_C#_.net_Sorting_Colors - Fatal编程技术网

C# 按调色板对颜色数组进行排序

C# 按调色板对颜色数组进行排序,c#,.net,sorting,colors,C#,.net,Sorting,Colors,我有一系列的颜色: private static string[] Colors = new string[] { "#A2AD00", "#69963B", "#00B2C0", "#009697", "#A31A7E", "#7D0063", "#EEAF00", "#EC7A00", "#0097D4", "#006FB4" }; 如何按调色板对颜色进行排序 对不起,把问题弄糊涂了。 我想按颜色组排列这些项目(绿色到绿色,红色到红色…),在每个组内项目必须按颜色亮度排列

我有一系列的颜色:

private static string[] Colors = new string[] {
    "#A2AD00", "#69963B", "#00B2C0", "#009697", "#A31A7E",
    "#7D0063", "#EEAF00", "#EC7A00", "#0097D4", "#006FB4"
};
如何按调色板对颜色进行排序

对不起,把问题弄糊涂了。 我想按颜色组排列这些项目(绿色到绿色,红色到红色…),在每个组内项目必须按颜色亮度排列


()

您有一个字符串数组,而不是颜色数组。虽然这些字符串可以转换为颜色对象,但您无法从中获得调色板

在索引位图中使用调色板,以便索引n指向特定颜色;而不是相反。除非您还知道从中获取颜色的索引位图,否则不会以其他方式进行转换


换句话说,对于你的问题;“按调色板排序”要想有任何意义,您至少需要知道从中获取颜色的对象。我猜您的意思是按调色板中的索引排序?在这种情况下,您可以在Entries数组中查找颜色以获得它们的索引;然后按该索引排序。

您可以尝试使用颜色列表而不是字符串数组。下面的排序函数对彩虹的颜色进行排序

List<Color> myColors = new List<Color>();
那怎么办

    Array.Sort(Colors );
    foreach (string s in Colors )
    {
        Console.WriteLine(s);
    }

正如@ SLL所说,这个问题不可能有建设性地回答,而不知道你是否应该考虑红利大于“蓝调”等等。它大致按原色分组。对于亮度,按灰度(0.299*R+0.587*G+0.114*B)排序。这个问题不应该被否决。我需要能够为我的游戏收集调色板数据,并最终得到一些您可能会觉得有用的代码(但它使用GetPixel,因此未进行优化):
    Array.Sort(Colors );
    foreach (string s in Colors )
    {
        Console.WriteLine(s);
    }