示例#1
0
        public static System.Drawing.Color YUVtoRGB(YUVCOLOR color)
        {
            int tmpRGBColorR = System.Convert.ToInt32((color.Y + 1.1398373983739837400 * color.V) * 255);
            int tmpRGBColorG = System.Convert.ToInt32((color.Y - 0.3946517043589703515 * color.U - 0.5805986066674976801 * color.V) * 255);
            int tmpRGBColorB = System.Convert.ToInt32((color.Y + 2.0321100917431192660 * color.U) * 255);

            return(System.Drawing.Color.FromArgb(tmpRGBColorR, tmpRGBColorG, tmpRGBColorB));
        }
示例#2
0
        public static YUVCOLOR RGBtoYUV(System.Drawing.Color color)
        {
            var tmpYUVColor = new YUVCOLOR( );

            // normalizes red/green/blue values
            double tempColorR = (double)color.R / 255.0;
            double tempColorG = (double)color.G / 255.0;
            double tempColorB = (double)color.B / 255.0;

            // converts
            tmpYUVColor.Y = +0.2990000000000000000 * tempColorR + 0.5870000000000000000 * tempColorG + 0.1140000000000000000 * tempColorB;
            tmpYUVColor.U = -0.1471376975169300226 * tempColorR - 0.2888623024830699774 * tempColorG + 0.4360000000000000000 * tempColorB;
            tmpYUVColor.V = +0.6150000000000000000 * tempColorR - 0.5149857346647646220 * tempColorG - 0.1000142653352353780 * tempColorB;

            return(tmpYUVColor);
        }