你的位置:首页 > 软件开发 > ASP.net > 【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

发布时间:2015-11-11 21:00:04
【C#】RGB,CMYK,HSB各种颜色表示的转换 一、表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等  1、RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合成不同的颜色,例如,100%红+100%绿混合可以得到黄色,红绿蓝三种颜色叠加 ...

【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

【C#】RGB,CMYK,HSB各种颜色表示的转换

 
    public static void RGB2CMYK(int red, int green, int blue, out double c, out double m, out double y, out double k)    {      c = (double)(255 - red) / 255;      m = (double)(255 - green) / 255;      y = (double)(255 - blue) / 255;      k = (double)Math.Min(c, Math.Min(m, y));      if (k == 1.0)      {        c = m = y = 0;      }      else      {        c = (c - k) / (1 - k);        m = (m - k) / (1 - k);        y = (y - k) / (1 - k);      }    }    public static void CMYK2RGB(double c, double m, double y, double k, out int r, out int g, out int b)    {      r = Convert.ToInt32((1.0 - c) * (1.0 - k) * 255.0);      g = Convert.ToInt32((1.0 - m) * (1.0 - k) * 255.0);      b = Convert.ToInt32((1.0 - y) * (1.0 - k) * 255.0);    }
【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

  2、RGB与HSB之间的转换

【C#】RGB,CMYK,HSB各种颜色表示的转换(转)
    public static get='_blank'>string RGB2Hex(int r, int g, int b)    {      return String.Format("#{0:x2}{1:x2}{2:x2}", (int)r, (int)g, (int)b);    }    public static Color Hex2Color(string hexColor)    {      string r, g, b;      if (hexColor != String.Empty)      {        hexColor = hexColor.Trim();        if (hexColor[0] == '#') hexColor = hexColor.Substring(1, hexColor.Length - 1);        r = hexColor.Substring(0, 2);        g = hexColor.Substring(2, 2);        b = hexColor.Substring(4, 2);        r = Convert.ToString(16 * GetIntFromHex(r.Substring(0, 1)) + GetIntFromHex(r.Substring(1, 1)));        g = Convert.ToString(16 * GetIntFromHex(g.Substring(0, 1)) + GetIntFromHex(g.Substring(1, 1)));        b = Convert.ToString(16 * GetIntFromHex(b.Substring(0, 1)) + GetIntFromHex(b.Substring(1, 1)));        return Color.FromArgb(Convert.ToInt32(r), Convert.ToInt32(g), Convert.ToInt32(b));      }      return Color.Empty;    }    private static int GetIntFromHex(string strHex)    {      switch (strHex)      {        case ("A"):          {            return 10;          }        case ("B"):          {            return 11;          }        case ("C"):          {            return 12;          }        case ("D"):          {            return 13;          }        case ("E"):          {            return 14;          }        case ("F"):          {            return 15;          }        default:          {            return int.Parse(strHex);          }      }    }
【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

 

转换算法摘自:http://www.codeproject.com/Articles/19045/Manipulating-colors-in.NET-Part-1


原标题:【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录