Esempio n. 1
0
        private static double GetRelativeUnit(double amount, ColorFunctionUnits units)
        {
            switch (units)
            {
            case ColorFunctionUnits.Relative:
                return(amount);

            case ColorFunctionUnits.Percentage:
                return(amount / 100.0);

            default:
                throw new ArgumentOutOfRangeException(nameof(units));
            }
        }
Esempio n. 2
0
        public static HsvColor FadeIn(HsvColor hsv, double amount, ColorFunctionUnits units)
        {
            hsv.Alpha = ChannelOperation(FunctionKind.Increase, hsv.Alpha, amount, units);

            return(hsv);
        }
Esempio n. 3
0
 public static RgbColor Desaturate(RgbColor rgb, double amount, ColorFunctionUnits units)
 {
     return(Desaturate(rgb.ToHslColor(), amount, units).ToRgbColor());
 }
Esempio n. 4
0
        public static HsvColor Desaturate(HsvColor hsv, double amount, ColorFunctionUnits units)
        {
            hsv.Saturation = ChannelOperation(FunctionKind.Decrease, hsv.Saturation, amount, units);

            return(hsv);
        }
Esempio n. 5
0
 public static HsvColor Darken(HsvColor hsv, double amount, ColorFunctionUnits units)
 {
     return(Darken(hsv.ToHslColor(), amount, units).ToHsvColor());
 }
Esempio n. 6
0
        public static HslColor Darken(HslColor hsl, double amount, ColorFunctionUnits units)
        {
            hsl.Lightness = ChannelOperation(FunctionKind.Decrease, hsl.Lightness, amount, units);

            return(hsl);
        }
Esempio n. 7
0
        private static double ChannelOperation(FunctionKind functionKind, double channel, double amount, ColorFunctionUnits units)
        {
            switch (units)
            {
            case ColorFunctionUnits.Absolute:
                return(CalculateFunction(functionKind, channel, amount));

            case ColorFunctionUnits.Relative:
                return(CalculateFunction(functionKind, channel, channel * amount));

            case ColorFunctionUnits.Percentage:
                return(CalculateFunction(functionKind, channel, channel * amount / 100.0));

            default:
                throw new ArgumentOutOfRangeException(nameof(units));
            }
        }
Esempio n. 8
0
 public static HsvColor Tint(HsvColor color, double amount, ColorFunctionUnits units)
 {
     return(Mix(RgbWhite, (RgbColor)color, GetRelativeUnit(amount, units)));
 }
Esempio n. 9
0
 public static HsvColor Shade(HsvColor color, double amount, ColorFunctionUnits units)
 {
     return(Mix(RgbBlack, (RgbColor)color, GetRelativeUnit(amount, units)));
 }
Esempio n. 10
0
        public static HslColor Saturate(HslColor hsl, double amount, ColorFunctionUnits units)
        {
            hsl.Saturation = ChannelOperation(FunctionKind.Increase, hsl.Saturation, amount, units);

            return(hsl);
        }
Esempio n. 11
0
 public static RgbColor Lighten(RgbColor rgb, double amount, ColorFunctionUnits units)
 {
     return(Lighten(rgb.ToHslColor(), amount, units).ToRgbColor());
 }
Esempio n. 12
0
        public static RgbColor FadeOut(RgbColor rgb, double amount, ColorFunctionUnits units)
        {
            rgb.A = ChannelOperation(FunctionKind.Decrease, rgb.A, amount, units);

            return(rgb);
        }
Esempio n. 13
0
 public static HslColor FadeOut(HslColor hsl, double amount, ColorFunctionUnits units)
 {
     hsl.Alpha = ChannelOperation(FunctionKind.Decrease, hsl.Alpha, amount, units);
     return(hsl);
 }