C# RGB与16进制颜色转换方法
C# RGB与16进制颜色转换方法
#region [颜色:16进制转成RGB]
/// <summary>
/// [颜色:16进制转成RGB]
/// </summary>
/// <param name="strColor">设置16进制颜色 [返回RGB]</param>
/// <returns></returns>
public static System.Drawing.Color colorHx16toRGB(string strHxColor)
{
try
{
if (strHxColor.Length == 0)
{//如果为空
return System.Drawing.Color.FromArgb(0, 0, 0);//设为黑色
}
else
{//转换颜色
return System.Drawing.Color.FromArgb(System.Int32.Parse(strHxColor.Substring(1, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(3, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(5, 2), System.Globalization.NumberStyles.AllowHexSpecifier));
}
}
catch
{//设为黑色
return System.Drawing.Color.FromArgb(0, 0, 0);
}
}
#endregion
#region [颜色:RGB转成16进制]
/// <summary>
/// [颜色:RGB转成16进制]
/// </summary>
/// <param name="R">红 int</param>
/// <param name="G">绿 int</param>
/// <param name="B">蓝 int</param>
/// <returns></returns>
public static string colorRGBtoHx16(int R, int G, int B)
{
return System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(R, G, B));
}
#endregion
又:
private string ToHexColor(Color color)
{
string R = Convert.ToString(color.R, 16);
if (R == "0")
R = "00";
string G = Convert.ToString(color.G, 16);
if (G == "0")
G = "00";
string B = Convert.ToString(color.B, 16);
if (B == "0")
B = "00";
string HexColor = "#" + R + G + B;
return HexColor;
}
public string ForeColor
{
set
{
//value = #ab364f
int r = Convert.ToInt32("0x" + value.Substring(1, 2),16);
int g = Convert.ToInt32("0x" + value.Substring(3, 2),16);
int b = Convert.ToInt32("0x" + value.Substring(5, 2),16);
txtUrl.ForeColor = System.Drawing.Color.FromArgb(r,g,b);
}
}
/// <summary>
/// 功能描述: 将指定的色彩对象,转换为无符号整数
/// 输入参数: Color,色彩对象
/// 输出参数: uint,无符号整数
/// </summary>
private Color RGB(int color)
{
int r = 0xFF & color;
int g = 0xFF00 & color;
g >>= 8;
int b = 0xFF0000 & color;
b >>= 16;
return Color.FromArgb(r, g, b);
}
#000000六位制RGB颜色 = > Color类型颜色
string strRGB = "#80ff80";
int r = int.Parser(strRGB.Substring(1,2),System.Globalization.NumberStyles.AllowHexSpecifier);
int g = int.Parser(strRGB.Substring(3,2),System.Globalization.NumberStyles.AllowHexSpecifier);
int b = int.Parser(strRGB.Substring(5,2),System.Globalization.NumberStyles.AllowHexSpecifier);
Color color = Color.FromArgb(r,g,b);
Color类型颜色 = > #000000六位制RGB颜色
ColorDialog cdg = new ColorDialog();
cdg.ShowDialog();
this.label1.ForeColor = cdg.Color;
Color nsColor = cdg.Color;
NewsTitleColor = ColorTranslator.ToHtml(nsColor);
//转换成#000000的字符串或者类型red , yellow之类的字符串
利用递增的数字返回循环渐变的颜色的js代码
function gCL(i){
var f=parseInt((i%15)/5);
i=i%15%5;
switch(f){
case 0:return "#"+cS2(255-i*51)+cS2(i*51)+"00";
case 1:return "#00"+cS2(255-i*51)+cS2(i*51);
case 2:return "#"+cS2(i*51)+"00"+cS2(255-i*51);
}
}
function cS2(i) {
var s=i.toString(16);
return ("00"+s).substr(s.length);
}