按调色板排序颜色数组
本文关键字:数组 颜色 排序 调色板 | 更新日期: 2023-09-27 18:18:32
我有颜色数组:
private static string[] Colors = new string[] {
"#A2AD00", "#69963B", "#00B2C0", "#009697", "#A31A7E",
"#7D0063", "#EEAF00", "#EC7A00", "#0097D4", "#006FB4"
};
如何按调色板对颜色进行排序?
很抱歉让人困惑的问题。我想按颜色组排列这些项目(绿色到绿色,红色到红色…),每个组内的项目必须按颜色亮度排列。
(链接到颜色组表示)
您可以尝试使用颜色列表而不是字符串数组。下面的排序函数对彩虹的颜色进行排序。
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 ());
});
您有一个字符串数组,而不是颜色。虽然这些字符串可以转换为颜色对象,但您不能从中获得调色板。
在索引位图中使用调色板,因此索引n指向特定的颜色;而不是反过来。除非您还知道颜色取自的索引位图,否则无法进行其他方式的转换。
换句话说,对于你的问题;"按调色板排序"要有意义,您至少需要知道颜色取自的ColorPalette
对象。我猜您的意思是按调色板中的索引排序?在这种情况下,你可以在Entries数组中查找颜色以获得它们的索引;然后按索引排序。
Array.Sort(Colors );
foreach (string s in Colors )
{
Console.WriteLine(s);
}