按十六进制值排序颜色
Ordering Color by Hex Value
我不知道如何归类这个问题,也没有有效地解释它,但我会尽力的。
我从我的应用程序中收集了一系列随机十六进制代码值。
我想以渐变方式呈现这些颜色,这将(理论上)显示一组颜色的突出性。
例如,如果在我的随机颜色阵列中有更多的蓝色阴影,那么将其放入此渐变中将反映出这一点。
但首先,我需要 "order" 渐变中的颜色紧挨着喜欢的颜色。
我正在使用 C# -- 但在关于如何 map/order/group 十六进制颜色值在一起的理论之后。
感谢您的评论,我使用了评论中的 Hue 方法,结果如下 - 效果很好,如您所见,我的颜色列表中有更多蓝色(已设置动态)再次感谢。
但它仍然存在一个错误——由于某种原因它在重复而不是占据整个高度:((从蓝色到红色应该只有 1 个线性)
(我会为此打开另一个问题)。
我的代码如下(ColorFromString 是我为 写的一个方法):
private Color[] OrderColorByHue(List<string> colors)
{
foreach(string c in colors)
{
Color color = ColorFromString(c); // This was defined in another question of mine :)
float hue = color.GetHue();
hueColors.Add(new KeyValuePair<Color, float>(color, hue));
}
hueColors.Sort((color1, color2) => color2.Value.CompareTo(color1.Value));
Color[] value = hueColors.Select(color => color.Key).ToArray();
return value;
}
希望这对其他人有帮助:)
// GET: Admin/Colors
public ActionResult Index()
{
var colors = db.Colors.OrderBy(a => a.HexCode);
return View(colors);
}
我在我的 MVC.Net 项目中使用了它。
我想你可以自己修改一下。
十六进制代码必须以“#”开头(对于订购很重要)
我不知道如何归类这个问题,也没有有效地解释它,但我会尽力的。
我从我的应用程序中收集了一系列随机十六进制代码值。
我想以渐变方式呈现这些颜色,这将(理论上)显示一组颜色的突出性。
例如,如果在我的随机颜色阵列中有更多的蓝色阴影,那么将其放入此渐变中将反映出这一点。
但首先,我需要 "order" 渐变中的颜色紧挨着喜欢的颜色。
我正在使用 C# -- 但在关于如何 map/order/group 十六进制颜色值在一起的理论之后。
感谢您的评论,我使用了评论中的 Hue 方法,结果如下 - 效果很好,如您所见,我的颜色列表中有更多蓝色(已设置动态)再次感谢。
但它仍然存在一个错误——由于某种原因它在重复而不是占据整个高度:((从蓝色到红色应该只有 1 个线性)
(我会为此打开另一个问题)。
我的代码如下(ColorFromString 是我为
private Color[] OrderColorByHue(List<string> colors)
{
foreach(string c in colors)
{
Color color = ColorFromString(c); // This was defined in another question of mine :)
float hue = color.GetHue();
hueColors.Add(new KeyValuePair<Color, float>(color, hue));
}
hueColors.Sort((color1, color2) => color2.Value.CompareTo(color1.Value));
Color[] value = hueColors.Select(color => color.Key).ToArray();
return value;
}
希望这对其他人有帮助:)
// GET: Admin/Colors
public ActionResult Index()
{
var colors = db.Colors.OrderBy(a => a.HexCode);
return View(colors);
}
我在我的 MVC.Net 项目中使用了它。 我想你可以自己修改一下。
十六进制代码必须以“#”开头(对于订购很重要)