Beispiel #1
0
        /// <summary>
        /// Gets a color from RGB ratios
        /// </summary>
        /// <param name="value1"></param>
        /// <param name="value2"></param>
        /// <param name="value3"></param>
        /// <returns></returns>
        public static Color ColorFromRGBRatios(double value1, double value2, double value3)
        {
            int rValue;
            int gValue;
            int bValue;

            if (value3 == 0)
            {
                rValue = gValue = bValue = (int)(value2 * 255);
            }
            else
            {
                float value4;
                if (value2 <= 0.5)
                {
                    value4 = (float)(value2 + (value2 * value3));
                }
                else
                {
                    value4 = (float)((value2 + value3) - (value2 * value3));
                }
                float value5 = ((float)(2 * value2)) - value4;
                rValue = ColorServices.GetColorChannelValue(value5, value4, (float)(value1 + 120));
                gValue = ColorServices.GetColorChannelValue(value5, value4, (float)value1);
                bValue = ColorServices.GetColorChannelValue(value5, value4, (float)(value1 - 120));
            }
            return(Color.FromArgb(rValue, gValue, bValue));
        }
Beispiel #2
0
        public static Color ColorFromRGBRatios(double value1, double value2, double value3)
        {
            int blue;
            int green;
            int red;

            if (value3 == 0.0)
            {
                int num;
                blue  = num = (int)(value2 * (double)byte.MaxValue);
                green = num;
                red   = num;
            }
            else
            {
                float num1 = value2 > 0.5 ? (float)(value2 + value3 - value2 * value3) : (float)(value2 + value2 * value3);
                float num2 = (float)(2.0 * value2) - num1;
                red   = ColorServices.GetColorChannelValue(num2, num1, (float)(value1 + 120.0));
                green = ColorServices.GetColorChannelValue(num2, num1, (float)value1);
                blue  = ColorServices.GetColorChannelValue(num2, num1, (float)(value1 - 120.0));
            }
            return(Color.FromArgb(red, green, blue));
        }