RGB颜色转HSL颜色

RGB颜色转HSL颜色:http://www.yansedaquan.com/YanSeDaQuan/

定义HSL对象 ,C#里定义是HSB,个人觉得两个是一样的,只是叫法不同而已。

    /// <summary>
    /// 通过色相(hues),饱和度(saturation),亮度(brightness)来表示颜色
    /// 在web颜色上叫HSL 色相(hues),饱和度(saturation), 亮度(Lightness)
    /// </summary>
    public class HSL
    {
        private double hue;
        private double saturation;
        private double brightness;

        /// <summary>
        /// 通过色相H(hues) 0 -- 360度
        /// </summary>
        public double H
        {
            get
            {
                return hue;
            }
            set
            {
                hue = (value > 360) ? 360 : ((value < 0) ? 0 : value);
            }
        }

        /// <summary>
        /// 饱和度S(saturation)1--100%
        /// </summary>
        public double S
        {
            get
            {
                return saturation;
            }
            set
            {
                saturation = (value > 1) ? 1 : ((value < 0) ? 0 : value);
            }
        }

        /// <summary>
        /// 亮度B(B,brightness或V,value L) 1--100%  Lightness
        /// </summary>
        public double L
        {
            get
            {
                return brightness;
            }
            set
            {
                brightness = (value > 1) ? 1 : ((value < 0) ? 0 : value);
            }
        }

        public HSL() { }

        public HSL(double h, double s, double b)
        {
            hue = (h > 360) ? 360 : ((h < 0) ? 0 : h);
            saturation = (s > 1) ? 1 : ((s < 0) ? 0 : s);
            brightness = (b > 1) ? 1 : ((b < 0) ? 0 : b);
        }
    }

然后,直接调用相关方法即可。。 

  public static HSL RGBtoHSL(Color color)
        {
           
            return new HSL()
            {
                H = color.GetHue(),
                L = color.GetBrightness(),
                S = color.GetSaturation(),
            };
        }

更多HSL颜色 参考: http://www.yansedaquan.com/HSLDaQuan/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章