如何使用C#从输入类型=“颜色”获取颜色的名称

时间:2013-11-12 04:09:12

标签: c# html5 input types colors

我有<input type="color" id="favcolor">。现在我想存储颜色的名称。我的意思是:红色,蓝色,黑色等。

我从textbox得到的值是:#ffffff(favcolor.text.tostring();. 与拾取的颜色有关)。我怎么能找到颜色的名字?

我想存储:红色,蓝色,黑色,白色..就像那样!没有HTML代码,没有rgb颜色!我想使用颜色的名称:C#

顺便说一句,我已经尝试过了:

Color mycolor = Color.FromName(“red”);那么你得到的是......#FF0000 我想要相反的

3 个答案:

答案 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";