Пример #1
0
        public Shader DistanceHSV()
        {
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod());
            var hsv = new ColorMine.ColorSpaces.Hsv();

            double[] transform;
            //transform= Transform.Sin(distance);
            transform = Helper.NormalizeArray(distance);

            for (int i = transform.Length - 1; i > 0; i--)
            {
                //double temp = (!double.IsNaN(distance[i]) ? distance[i]: 0 ); //broken
                //double x = (temp != 0) ? distance[i] * 360 : 0; //broken

                double x = transform[i] * 360;
                hsv.H = x;
                hsv.S = 1;
                hsv.V = 1;

                var rgb = hsv.ToRgb();
                int r   = (int)rgb.R;
                int g   = (int)rgb.G;
                int b   = (int)rgb.B;

                canvas[i] = 255 << 24 | r << 16 | g << 8 | b << 0;
            }
            return(this);
        }
Пример #2
0
        public Shader ExposureHSV()
        {
            Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod());
            highestActual = Helper.GetMinMax(exposure).Item2;
            var hsv = new ColorMine.ColorSpaces.Hsv();

            Helper.NormalizeArray(exposure);
            for (int i = exposure.Length - 1; i > 0; i--)
            {
                double x = (exposure[i] != 0) ? exposure[i] * 360 : 0;
                hsv.H = x;
                hsv.S = 1;
                hsv.V = 1;

                var rgb = hsv.ToRgb();
                int r   = (int)rgb.R;
                int g   = (int)rgb.G;
                int b   = (int)rgb.B;

                canvas[i] = 255 << 24 | r << 16 | g << 8 | b << 0;
            }
            return(this);
        }