gpt4 book ai didi

c# - 根据亮度和饱和度在颜色名称前添加 pale/vivid/light/dark

转载 作者:行者123 更新时间:2023-11-30 21:44:03 28 4
gpt4 key购买 nike

我想得到最接近这个列表的颜色:

static List<Color> clist = new List<Color>()
{
Color.Black, Color.Brown, Color.Blue, Color.Green, Color.Red, Color.Yellow,
Color.Gray, Color.Indigo, Color.Orange, Color.Pink, Color.Turquoise, Color.White
};

我得到最接近的颜色,但我想添加:苍白/黑暗/鲜艳/明亮,具体取决于颜色的亮度和饱和度:

        static string closestColor2(List<Color> colors, Color target)
{
var colorDiffs = colors.Select(n => ColorDiff(n, target)).Min(n => n);
int x = colors.FindIndex(n => ColorDiff(n, target) == colorDiffs);
return colors[x].ToString();
}

static int ColorDiff(Color c1, Color c2)
{
return (int)Math.Sqrt((c1.R - c2.R) * (c1.R - c2.R)
+ (c1.G - c2.G) * (c1.G - c2.G)
+ (c1.B - c2.B) * (c1.B - c2.B));
}

最佳答案

比较颜色时需要考虑很多事情。但这个问题已经有了答案。

在这里您可以找到解决方案:

How to compare Color object and get closest Color in an Color[]?

关于c# - 根据亮度和饱和度在颜色名称前添加 pale/vivid/light/dark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086851/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com