【C#】RGB,CMYK,HSB各种颜色表示的转换 一、表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等 1、RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合成不同的颜色,例如,100%红+100%绿混合可以得到黄色,红绿蓝三种颜色叠加 ...
【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); }
2、RGB与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); } } }
转换算法摘自:http://www.codeproject.com/Articles/19045/Manipulating-colors-in.NET-Part-1
原标题:【C#】RGB,CMYK,HSB各种颜色表示的转换(转)
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。