www.pudn.com > UYVY2RGB.rar > YUV2RGB.CPP
void init_yuvtable()
{
int i;
for (i=0; i<256; i++)
{
yuv_rv[i] = 1400*(i-128)/1000;
yuv_gu[i] = 340*(i-128)/1000;
yuv_gv[i] = 700*(i-128)/1000;
yuv_bu[i] = 1700*(i-128)/1000;
}
yuv_init = 1;
}
main()
{
if (yuv_init == 0) {
init_yuvtable();
}
w = biSource->biWidth;
h = biSource->biHeight;
unsigned char* yr = lpSource;
unsigned char* ur = lpSource + w*h;
unsigned char* vr = lpSource + w*h + (w*h/4);
unsigned char* rgb = lpTarget;
for (i=0; i255) {
r = 255;
} else if (r<0) {
r = 0;
}
if (g>255) {
g = 255;
} else if (g<0) {
g = 0;
}
if (b>255) {
b = 255;
} else if (b<0) {
b = 0;
}
cache = ((i%w)+(((h-1)-(i/w))*w))*3;
rgb[cache] = byte(b);
rgb[cache+1] = byte(g);
rgb[cache+2] = byte(r);
}
}