String转Color

  1. 云栖社区>
  2. 博客>
  3. 正文

String转Color

杰克.陈 2018-08-28 14:11:00 浏览399
展开阅读全文
原文:String转Color

很硬性的转换,谁知道更好的忘不吝赐教啊。

        /// <summary>
        /// String To Color
        /// </summary>
        /// <param name="color">例如#FFFF0000,红色</param>
        /// <returns></returns>
        public Color ReturnColorFromString(string color)
        {
            //#FFFF0000,A,R,G,B。
            color = color.Substring(1, color.Length - 1);
            string alpha = color.Substring(0, 2);
            string red = color.Substring(2, 2);
            string green = color.Substring(4, 2);
            string blue = color.Substring(6, 2);
            byte alphaByte = Convert.ToByte(alpha, 16);
            byte redByte = Convert.ToByte(red, 16);
            byte greenByte = Convert.ToByte(green, 16);
            byte blueByte = Convert.ToByte(blue, 16);
            return Color.FromArgb(alphaByte, redByte, greenByte, blueByte);
        }


        public static Color ToColor(this string colorName)
        {
            if (colorName.StartsWith("#")) 
                colorName = colorName.Replace("#", string.Empty);
            var v = int.Parse(colorName, System.Globalization.NumberStyles.HexNumber);
            return new Color
            {
                A = Convert.ToByte((v >> 24) & 255),
                R = Convert.ToByte((v >> 16) & 255),
                G = Convert.ToByte((v >> 8) & 255),
                B = Convert.ToByte((v >> 0) & 255)
            };
        }


网友评论

登录后评论
0/500
评论
杰克.陈
+ 关注