public static FromRgb ( int r, int g, int b ) : |
||
r | int | The red component. |
g | int | The green component. |
b | int | The blue component. |
Результат |
/// <summary> /// Get black color. /// </summary> public static RgbColor Black() { return(RgbColor.FromRgb(0, 0, 0)); }
RgbColor ToRGB() { // convert to RGB according to // "Conversion from HSL to RGB" double r = m_lightness; double g = m_lightness; double b = m_lightness; if (m_saturation == 0) { return(RgbColor.FromRgb((int)(r * 255), (int)(g * 255), (int)(b * 255))); } double q = 0; if (m_lightness < 0.5) { q = m_lightness * (1 + m_saturation); } else { q = m_lightness + m_saturation - (m_lightness * m_saturation); } double p = 2 * m_lightness - q; double hk = m_hue / 360; // r,g,b colors double[] tc = new double[3] { hk + (1d / 3d), hk, hk - (1d / 3d) }; double[] colors = new double[3] { 0, 0, 0 }; for (int color = 0; color < colors.Length; color++) { if (tc[color] < 0) { tc[color] += 1; } if (tc[color] > 1) { tc[color] -= 1; } if (tc[color] < (1d / 6d)) { colors[color] = p + ((q - p) * 6 * tc[color]); } else if (tc[color] >= (1d / 6d) && tc[color] < (1d / 2d)) { colors[color] = q; } else if (tc[color] >= (1d / 2d) && tc[color] < (2d / 3d)) { colors[color] = p + ((q - p) * 6 * (2d / 3d - tc[color])); } else { colors[color] = p; } colors[color] *= 255; // convert to value expected by Color } return(RgbColor.FromRgb((int)colors[0], (int)colors[1], (int)colors[2])); }