69,371
社区成员
发帖
与我相关
我的任务
分享
void readF(FILE *fp,int flag,int frameN)//frameN为每帧字节数
{
unsigned char *p,R,G,B;
int i,j;
FILE *fp1;
FILE *fp2;
if (flag > 3)return;
switch(flag)
{
case 0:lpDDSOne -> Lock(NULL,&Sddsd1,DDLOCK_WAIT,NULL);break;
case 1:lpDDSTwo -> Lock(NULL,&Sddsd2,DDLOCK_WAIT,NULL);break;
case 2:lpDDSThr -> Lock(NULL,&Sddsd3,DDLOCK_WAIT,NULL);break;
case 3:lpDDSFour -> Lock(NULL,&Sddsd4,DDLOCK_WAIT,NULL);break;
}
switch(flag)
{
case 0:p = (unsigned char*)Sddsd1.lpSurface;break;
case 1:p = (unsigned char*)Sddsd2.lpSurface;break;
case 2:p = (unsigned char*)Sddsd3.lpSurface;break;
case 3:p = (unsigned char*)Sddsd4.lpSurface;break;
}
fread(p,frameN,1,fp);*****************************************************************
j = frameN/3-1;
for (i=0;i<(frameN/3-1);i++)
{
R = *(p+j*3+0);
G = *(p+j*3+1);
B = *(p+j*3+2);
*(p+j*4+0) = B;
*(p+j*4+1) = G;
*(p+j*4+2) = R;
*(p+j*4+3) = 0;
j--;
}
switch(flag)
{
case 0:lpDDSOne -> Unlock(NULL);break;
case 1:lpDDSTwo -> Unlock(NULL);break;
case 2:lpDDSThr -> Unlock(NULL);break;
case 3:lpDDSFour -> Unlock(NULL);break;
}
return;
}