C#: Drawing.Color 与 HTML Hex Color 相互转换

2015-12-25 xiirus.net Carlo Mendoza Shane Jhu


I was working on a small project that needed to colorize text from stored values and bitmap gradients which involved getting color values from individual pixels as RGB values or System.Drawing.Color values. The following code demonstrates how to convert back-and-forth between System.Drawing.Color and string values (#XXXXXX or the name). I’ve seen how some people have gone out of their way to do these conversions with their own code implementations, but why recreate what’s already in the .NET Framework?

I must admit though, I didn’t think this was already built-in until I searched MSDN.

就是说,对于 System.Drawing.Color 与 HTML中的HEX颜色(#XXXXXX 或颜色名称)的相互转换,许多人都是自己编写转换代码实现,但实际上,转换方法已经内置在 .NET Framework 中了。调用方式如下:

using System.Drawing;

//convert to the HTML color value of a 
//known System.Drawing.Color
string htmlNamedColorValue =
//output: "Crimson"
//convert to the HTML hex color value from 
//System.Drawing.Color with RGB values (208,0,0)
string htmlHexColorValueTwo =
    ColorTranslator.ToHtml(Color.FromArgb(0, 208, 0, 0));
//output: "#D00000"
//convert to System.Drawing.Color from HTML hex color value 
Color colorValueFrmHex =
//output: System.Drawing.Color with RGB values (255,25,51)
//convert to System.Drawing.Color from HTML known color
Color colorValue =
//output: Color.DarkRed
string htmlHexColorValueThree =
    String.Format("#{0:X2}{1:X2}{2:X2}", colorValue.R,
//output: "#8B0000"


7月 21 2022

保罗·波希 (Paul Boese 美国商人、作家)