根据BITMAPINFO获取位图数据

来源:互联网 发布:电脑cmd网络命令大全 编辑:程序博客网 时间:2024/04/30 17:12
       LPSTR lpDIBBits;
BITMAPINFO &bmInfo = *(LPBITMAPINFO)hBitmap ;
if( bmInfo.bmiHeader.biBitCount > 8 )
lpDIBBits = (LPSTR)((LPDWORD)(bmInfo.bmiColors + bmInfo.bmiHeader.biClrUsed) + ((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));

else

       {     int nColors = bmInfo.bmiHeader.biClrUsed? bmInfo.bmiHeader.biClrUsed : 1 << bmInfo.bmiHeader.biBitCount;

     lpDIBBits = (LPSTR)(bmInfo.bmiColors + nColors);

       }

SetStretchBltMode(ImageMemDC.m_hDC, COLORONCOLOR);
StretchDIBits( ImageMemDC.m_hDC,0,0,nWidth,nHeight,0,0,nWidth,nHeight,
lpDIBBits,(LPBITMAPINFO)hBitmap,DIB_RGB_COLORS,SRCCOPY);