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/

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