public static DoubleColor Double( this AYUV yuv ) { DoubleColor c = DoubleColor.Empty; c.R = (yuv.Y + 1.139837398373983740 * yuv.V) * 255.0; c.G = (yuv.Y - 0.3946517043589703515 * yuv.U - 0.5805986066674976801 * yuv.V) * 255.0; c.B = (yuv.Y + 2.032110091743119266 * yuv.U) * 255.0; c.A = yuv.A * 255.0; return(c); }
public static AYUV ToAYUV( this DoubleColor c ) { AYUV yuv = new AYUV(); // // normalizes red, green, blue values // double r = (double)c.R / 255.0; double g = (double)c.G / 255.0; double b = (double)c.B / 255.0; yuv.Y = 0.299 * r + 0.587 * g + 0.114 * b; yuv.U = -0.14713 * r - 0.28886 * g + 0.436 * b; yuv.V = 0.615 * r - 0.51499 * g - 0.10001 * b; yuv.A = c.A / 255.0; return(yuv); }