当前位置:首页 > Windows程序 > 正文

C# RGB与16进制颜色转换方法

2021-03-24 Windows程序

#region [颜色:16进制转成RGB]
        /// <summary>
        /// [颜色:16进制转成RGB]
        /// </summary>
        /// <param>设置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>红 int</param>
        /// <param>绿 int</param>
        /// <param>蓝 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);

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/66547.html