示例#1
0
 /// <summary>
 /// Convert from HSL to RGB color space.
 ///
 /// </summary>
 /// <param name="hsl">Source color in <b>HSL</b> color space.</param><param name="rgb">Destination color in <b>RGB</b> color space.</param>
 public static void ToRGB(HSL hsl, RGB rgb)
 {
     if (hsl.Saturation == 0.0)
     {
         rgb.Red = rgb.Green = rgb.Blue = (byte)(hsl.Luminance * byte.MaxValue);
     }
     else
     {
         var vH = hsl.Hue;
         var v2 = hsl.Luminance < 0.5 ? hsl.Luminance * (1f + hsl.Saturation) : hsl.Luminance + hsl.Saturation - hsl.Luminance * hsl.Saturation;
         var v1 = 2f * hsl.Luminance - v2;
         rgb.Red   = (byte)(byte.MaxValue * Hue2RGB(v1, v2, vH + 0.3333333f));
         rgb.Green = (byte)(byte.MaxValue * Hue2RGB(v1, v2, vH));
         rgb.Blue  = (byte)(byte.MaxValue * Hue2RGB(v1, v2, vH - 0.3333333f));
     }
     rgb.Alpha = byte.MaxValue;
 }
示例#2
0
 public HSLFilter(HSL minHSL, HSL maxHSL)
 {
     this.minHSL = minHSL;
     this.maxHSL = maxHSL;
 }