CBITMAP转为BYTE数组

来源:互联网 发布:linux下安装eclipse 编辑:程序博客网 时间:2024/06/16 02:06
  //用GetBitmap获得图像数据大小  //用GetBitmapBits获得数据数组  BITMAP temBmp;  pBmp->GetBitmap(&temBmp);  iDataSize = ((temBmp.bmWidth + 31 ) / 32 * 4) * temBmp.bmHeight;//图像数据大小  pBmp->GetBitmapBits(iDataSize, pBits);//拷贝图像数据  memcpy(pByteBuff, pBmInfo, iHeadInfoSize);//拷贝头信息  拷贝位图中的信息到CBBitmap int iHeadInfoSize = sizeof(BITMAPINFOHEADER) +  2 * sizeof(RGBQUAD);//信息头大小 int iDataSize = ((iWidth  + 31) / 32) * 4 * iHeight;//图像数据大小 int iTotalBytes = iHeadInfoSize + iDataSize; BYTE *pByteBuff = new BYTE[iTotalBytes]; memset(pByteBuff, 0, iTotalBytes); memcpy(pByteBuff, pBmInfo, iHeadInfoSize);//拷贝头信息 BYTE *pBits = pByteBuff + iHeadInfoSize; //将指针移动到数据区 memcpy(pBits, bmp.bmBits,iDataSize);//拷贝图像数据 CString sFilePath = _T("");//将CBitmap中的数据转到BYTE数组,然后存到CBBitmap中 CBPoint startPt(boxRect.left, boxRect.top); iTotalBytes = iHeadInfoSize +iDataSize; setContents(sFilePath, iTotalBytes, pByteBuff, boxRect.width(), boxRect.height(), startPt);
原创粉丝点击