/// <summary> /// Create the nearest LCH equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The LCH equivalent of the HSL color.</returns> public static ColorLCH CreateFromHSL(ColorHSL hsl) { return CreateFromLAB(ColorLAB.CreateFromHSL(hsl)); }
///// <summary> ///// Create the nearest XYZ equivalent of an RGB color. ///// </summary> ///// <param name="rgb">Target color in RGB space.</param> ///// <returns>The XYZ equivalent of the RGB color.</returns> //public static ColorXYZ CreateFromRGB(ColorRGB rgb) //{ // ColorXYZ newColor = new ColorXYZ(); // double r = ((double)rgb.m_r / 255.0); //R from 0 to 255 // double g = ((double)rgb.m_g / 255.0); //G from 0 to 255 // double b = ((double)rgb.m_b / 255.0); //B from 0 to 255 // double a = ((double)rgb.m_a / 255.0); //A from 0 to 255 // if (r > 0.04045) // { // r = Math.Pow(((r + 0.055) / 1.055), 2.4); // } // else // { // r /= 12.92; // } // if (g > 0.04045) // { // g = Math.Pow(((g + 0.055) / 1.055), 2.4); // } // else // { // g /= 12.92; // } // if (b > 0.04045) // { // b = Math.Pow(((b + 0.055) / 1.055), 2.4); // } // else // { // b /= 12.92; // } // r *= 100.0; // g *= 100.0; // b *= 100.0; // //Observer. = 2°, Illuminant = D65 // newColor.m_x = r * 0.4124 + g * 0.3576 + b * 0.1805; // newColor.m_y = r * 0.2126 + g * 0.7152 + b * 0.0722; // newColor.m_z = r * 0.0193 + g * 0.1192 + b * 0.9505; // newColor.m_a = a; // return newColor; //} /// <summary> /// Create the nearest XYZ equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The XYZ equivalent of the HSL color.</returns> public static ColorXYZ CreateFromHSL(ColorHSL hsl) { return new ColorXYZ(hsl); }
///// <summary> ///// Create the nearest LAB equivalent of an RGB color. ///// </summary> ///// <param name="rgb">Target color in RGB space.</param> ///// <returns>The LAB equivalent of the RGB color.</returns> //public static ColorLAB CreateFromRGB(ColorRGB rgb) //{ // return CreateFromXYZ(ColorXYZ.CreateFromRGB(rgb)); //} /// <summary> /// Create the nearest LAB equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The LAB equivalent of the HSL color.</returns> public static ColorLAB CreateFromHSL(ColorHSL hsl) { return CreateFromXYZ(ColorXYZ.CreateFromHSL(hsl)); }
/// <summary> /// Constructs the nearest CMYK equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The CMYK equivalent of the HSL color.</returns> public static ColorCMYK CreateFromHSL(ColorHSL hsl) { return new ColorCMYK(hsl); }
/// <summary> /// Create the nearest LCH equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The LCH equivalent of the HSL color.</returns> public static ColorLCH CreateFromHSL(ColorHSL hsl) { return(CreateFromLAB(ColorLAB.CreateFromHSL(hsl))); }
///// <summary> ///// Create the nearest LAB equivalent of an RGB color. ///// </summary> ///// <param name="rgb">Target color in RGB space.</param> ///// <returns>The LAB equivalent of the RGB color.</returns> //public static ColorLAB CreateFromRGB(ColorRGB rgb) //{ // return CreateFromXYZ(ColorXYZ.CreateFromRGB(rgb)); //} /// <summary> /// Create the nearest LAB equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The LAB equivalent of the HSL color.</returns> public static ColorLAB CreateFromHSL(ColorHSL hsl) { return(CreateFromXYZ(ColorXYZ.CreateFromHSL(hsl))); }
///// <summary> ///// Create the nearest XYZ equivalent of an RGB color. ///// </summary> ///// <param name="rgb">Target color in RGB space.</param> ///// <returns>The XYZ equivalent of the RGB color.</returns> //public static ColorXYZ CreateFromRGB(ColorRGB rgb) //{ // ColorXYZ newColor = new ColorXYZ(); // double r = ((double)rgb.m_r / 255.0); //R from 0 to 255 // double g = ((double)rgb.m_g / 255.0); //G from 0 to 255 // double b = ((double)rgb.m_b / 255.0); //B from 0 to 255 // double a = ((double)rgb.m_a / 255.0); //A from 0 to 255 // if (r > 0.04045) // { // r = Math.Pow(((r + 0.055) / 1.055), 2.4); // } // else // { // r /= 12.92; // } // if (g > 0.04045) // { // g = Math.Pow(((g + 0.055) / 1.055), 2.4); // } // else // { // g /= 12.92; // } // if (b > 0.04045) // { // b = Math.Pow(((b + 0.055) / 1.055), 2.4); // } // else // { // b /= 12.92; // } // r *= 100.0; // g *= 100.0; // b *= 100.0; // //Observer. = 2°, Illuminant = D65 // newColor.m_x = r * 0.4124 + g * 0.3576 + b * 0.1805; // newColor.m_y = r * 0.2126 + g * 0.7152 + b * 0.0722; // newColor.m_z = r * 0.0193 + g * 0.1192 + b * 0.9505; // newColor.m_a = a; // return newColor; //} /// <summary> /// Create the nearest XYZ equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The XYZ equivalent of the HSL color.</returns> public static ColorXYZ CreateFromHSL(ColorHSL hsl) { return(new ColorXYZ(hsl)); }
/// <summary> /// Constructs the nearest CMYK equivalent of an HSL color. /// </summary> /// <param name="hsl">Target color in HSL space.</param> /// <returns>The CMYK equivalent of the HSL color.</returns> public static ColorCMYK CreateFromHSL(ColorHSL hsl) { return(new ColorCMYK(hsl)); }