我有一系列颜色:
private static string[] Colors = new string[] {
"#A2AD00", "#69963B", "#00B2C0", "#009697", "#A31A7E",
"#7D0063", "#EEAF00", "#EC7A00", "#0097D4", "#006FB4"
};
如何按调色板对颜色进行排序?
抱歉令人困惑的问题。 我想按颜色组(绿色到绿色,红色到红色......)排列这些项目,每个组内部的项目必须按颜色亮度排列。
答案 0 :(得分:4)
您可以尝试使用颜色列表而不是字符串数组。以下排序功能可以对彩虹的颜色进行排序。
List<Color> myColors = new List<Color>();
为列表添加颜色
myColors.Add (new Color (r,g,b))
colors.Sort(delegate(System.Drawing.Color left, System.Drawing.Color right)
{
return left.GetBrightness().CompareTo(right.GetBrightness ());
});
答案 1 :(得分:1)
你有一个字符串数组,而不是颜色。虽然这些字符串可以转换为颜色对象,但您无法从中获得调色板。
在索引位图中使用调色板,以便索引n指向特定的颜色;而不是相反。除非你也知道从中获取颜色的索引位图,否则没有其他方式的转换。
换句话说,对于你的问题; “按调色板排序”是有意义的,你至少需要知道从中获取颜色的ColorPalette
对象。我猜你的意思是按调色板中的索引排序?在这种情况下,您可以在Entries数组中查找颜色以获取其索引;然后按该索引排序。
答案 2 :(得分:0)
怎么样
Array.Sort(Colors );
foreach (string s in Colors )
{
Console.WriteLine(s);
}