如题BITMAPFILEHEADER
BITMAPINFOHEADER
还有位图数据 iBMPBytes 
都得到了
可以写进文件
FILE *fp;
if((fp=fopen(szBMPFileName,"wb"))==NULL)
{return false;}
fwrite(&bmfh,sizeof(BITMAPFILEHEADER),1,fp);
fwrite(&(m_InInfo.bmiHeader),sizeof(BITMAPINFOHEADER),1,fp);
fwrite(lpVHdr->lpData,iBMPBytes,1,fp);
fclose(fp);但是我想保持到内存的中一个char数组中
该怎么做啊??

解决方案 »

  1.   

    得到位图的宽和高,用For循环语句就可以
      

  2.   

    long bufsize = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+iBMPBytes;char pdata = new char[bufsize];
    char p = pdata;memcpy(p,&bmfh,sizeof(BITMAPFILEHEADER));
    p+=sizeof(BITMAPFILEHEADER);
    memcpy(p,&(m_InInfo.bmiHeader),sizeof(BITMAPINFOHEADER));
    p+=sizeof(BITMAPINFOHEADER);
    memcpy(p,lpVHdr->lpData,iBMPBytes);//这样copy,里面数据的顺序是和文件中一样的
      

  3.   

    上面应该是char* pdata 和 char* p