我好像使用sdl转换的。。。但是直接转不难,借别人的代码用下巴:http://topic.csdn.net/u/20090709/16/2D27DDD1-8B2D-4100-A05E-831FE474D50B.htmlRGBQUAD RGBtoYUV(RGBQUAD lRGBColor){ int Y,U,V,R,G,B; R = lRGBColor.rgbRed; G = lRGBColor.rgbGreen; B = lRGBColor.rgbBlue;// Y = (int)( 0.257 * R + 0.504 * G + 0.098 * B);// U = (int)( 0.439 * R - 0.368 * G - 0.071 * B + 128);// V = (int)(-0.148 * R - 0.291 * G + 0.439 * B + 128); Y = (int)(0.299f * R + 0.587f * G + 0.114f * B); U = (int)((B-Y) * 0.565f + 128); V = (int)((R-Y) * 0.713f + 128); Y= min(255,max(0,Y)); U= min(255,max(0,U)); V= min(255,max(0,V)); RGBQUAD yuv={(BYTE)V,(BYTE)U,(BYTE)Y,0}; return yuv;}