我有<input type="color" id="favcolor">
。现在我想存储颜色的名称。我的意思是:红色,蓝色,黑色等。
我从textbox
得到的值是:#ffffff
(favcolor.text.tostring();.
与拾取的颜色有关)。我怎么能找到颜色的名字?
我想存储:红色,蓝色,黑色,白色..就像那样!没有HTML代码,没有rgb颜色!我想使用颜色的名称:C#
顺便说一句,我已经尝试过了:Color mycolor = Color.FromName(“red”);那么你得到的是......#FF0000 我想要相反的
答案 0 :(得分:0)
考虑一下:颜色。FromName
修改强>
System.Array colorsArray = Enum.GetValues(typeof(KnownColor));
KnownColor[] allColors = new KnownColor[colorsArray.Length];
Array.Copy(colorsArray, allColors, colorsArray.Length);
var colorValueToColorMap = allColors.ToDictionary(x => Color.FromName(x.ToString()).ToString().ToLower(), Color.FromName(x.ToString()));
var colorValue = "#FF0000";
var argbColorValue = "#" + "FF" + colorValue.Substring(1);
var color = colorValueToColorMap[argbColorValue.ToLower()];
答案 1 :(得分:0)
您可以使用以下代码,请注意,只有known colors您才能获得预期的颜色名称(红色,浅绿色,绿色)。
Color color = System.Drawing.ColorTranslator.FromHtml("#FF98FB98");
string colorName = color.Name;
输出
FF32CD32 =&gt;暗绿
FF00FFFF =&gt;水族
答案 2 :(得分:0)
您需要迭代已知颜色,将它们转换为十六进制代码并比较匹配。
var colorInfo= Enum.GetValues(typeof(KnownColor))
.Cast<KnownColor>()
.Select(x => new { Name = x.ToString(), Color = FromKnownColor(x) })
.FirstOrDefault(x => x.Color.ToArgb() == submittedColorArgbCode);
return (colorInfo != null) ? colorInfo.Name:"Unknown";