现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

从文件导出一个位图资源写成BMP位图文件

2012-09-14 23:43 工业·编程 ⁄ 共 692字 ⁄ 字号 暂无评论

try
{
  HINSTANCE ghInstApp = AfxGetInstanceHandle();
  HRSRC hRsrc = FindResource(NULL,
    MAKEINTRESOURCE(IDB_BITMAP1), RT_BITMAP );
  ASSERT(hRsrc);
  DWORD dwErr = GetLastError();
  DWORD dwLen = SizeofResource(ghInstApp,hRsrc);
  ASSERT(dwLen);
  HGLOBAL hGlobal = LoadResource(ghInstApp,hRsrc);
         
  CFile file(_T("C://temp//a.bmp"), CFile::modeCreate | CFile::modeWrite);

  //构建一个文件头
  BITMAPFILEHEADER   bfh   =   {0};//位图文件头     
  bfh.bfOffBits   =   sizeof(BITMAPFILEHEADER)   +   sizeof(BITMAPINFOHEADER);//到位图数据的偏移量     
  bfh.bfSize   =   bfh.bfOffBits   +  dwLen - sizeof(BITMAPINFOHEADER) ;//文件总的大小     
  bfh.bfType   =   (WORD)0x4d42;   
 
  file.Write(&bfh, sizeof(bfh));
  file.Write(hGlobal, dwLen);
  file.Close();
}
catch(...)
{
  ASSERT(0);
}

给我留言

留言无头像?