【发布时间】:2011-12-22 16:29:18
【问题描述】:
我有颜色数组:
private static string[] Colors = new string[] {
"#A2AD00", "#69963B", "#00B2C0", "#009697", "#A31A7E",
"#7D0063", "#EEAF00", "#EC7A00", "#0097D4", "#006FB4"
};
如何按调色板对颜色进行排序?
对不起,令人困惑的问题。 我想按颜色组(绿色到绿色,红色到红色......)排列这些项目,并且每个组内的项目必须按颜色亮度排列。
【问题讨论】:
-
正如@sll 所说,如果不知道您是否应该考虑红色“大于”蓝色等等,就无法建设性地回答这个问题。
-
获取R、G、B,并按最高分组。大致按原色分组。对于亮度,按灰度 (0.299 * R + 0.587 * G + 0.114 * B) 排序。
-
这个问题不应该被否决。我需要为我的游戏收集调色板数据的能力,最后得到了一些你可能会觉得有用的代码(虽然它使用 GetPixel,因此没有优化):pastebin.com/mfSNsHKp