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)); }
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); }