Example #1
0
 RgbaBytes(RgbaDoubles c, double a_)
 {
     _r = ((byte)PictorBasics.Uround (c._r * (double)BaseMask));
     _g = ((byte)PictorBasics.Uround (c._g * (double)BaseMask));
     _b = ((byte)PictorBasics.Uround (c._b * (double)BaseMask));
     _a = ((byte)PictorBasics.Uround (a_ * (double)BaseMask));
 }
Example #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="wl">
        /// A <see cref="System.Double"/>
        /// </param>
        /// <param name="gamma">
        /// A <see cref="System.Double"/>
        /// </param>
        /// <returns>
        /// A <see cref="RgbaDoubles"/>
        /// </returns>
        public static RgbaDoubles FromWavelength(double wl, double gamma)
        {
            RgbaDoubles t = new RgbaDoubles (0.0, 0.0, 0.0);

            if (wl >= 380.0 && wl <= 440.0) {
                t._r = -1.0 * (wl - 440.0) / (440.0 - 380.0);
                t._b = 1.0;
            } else if (wl >= 440.0 && wl <= 490.0) {
                t._g = (wl - 440.0) / (490.0 - 440.0);
                t._b = 1.0;
            } else if (wl >= 490.0 && wl <= 510.0) {
                t._g = 1.0;
                t._b = -1.0 * (wl - 510.0) / (510.0 - 490.0);
            } else if (wl >= 510.0 && wl <= 580.0) {
                t._r = (wl - 510.0) / (580.0 - 510.0);
                t._g = 1.0;
            } else if (wl >= 580.0 && wl <= 645.0) {
                t._r = 1.0;
                t._g = -1.0 * (wl - 645.0) / (645.0 - 580.0);
            } else if (wl >= 645.0 && wl <= 780.0) {
                t._r = 1.0;
            }

            double s = 1.0;
            if (wl > 700.0)
                s = 0.3 + 0.7 * (780.0 - wl) / (780.0 - 700.0); else if (wl < 420.0)
                s = 0.3 + 0.7 * (wl - 380.0) / (420.0 - 380.0);

            t._r = Math.Pow (t._r * s, gamma);
            t._g = Math.Pow (t._g * s, gamma);
            t._b = Math.Pow (t._b * s, gamma);

            return t;
        }
Example #3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="color">
 /// A <see cref="RgbaDoubles"/>
 /// </param>
 public RgbaDoubles(RgbaDoubles color)
     : this(color, 1)
 {
 }
Example #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="color">
 /// A <see cref="RgbaDoubles"/>
 /// </param>
 /// <param name="a">
 /// A <see cref="System.Double"/>
 /// </param>
 public RgbaDoubles(RgbaDoubles color, double a)
     : this(color._r, color._g, color._b, color._a)
 {
 }