为什么DIB位图显示出来颜色不对劲?
我用大恒CG300采集卡提供的开发包把图像采集到内存中
指向位图信息头指针为:m_pBmpInfo,指向图像数据区的指针为m_pImageBuffer
用这样的方法显示出来的图像正确的:
StretchDIBits(pDC->GetSafeHdc(),
0,
0,
320,
240,
0,
0,
320,
240,
m_pImageBuffer,
m_pBmpInfo,
DIB_RGB_COLORS,
SRCCOPY
);
但是这样就不对了,色彩不对
HDIB hDIB = (HDIB)GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT,
sizeof(sizeof(BITMAPINFO) + dwImageSize);
LPSTR pDIB = (LPSTR) ::GlobalLock((HGLOBAL)hDIB);
memcpy(pDIB , m_pBmpInfo,sizeof(BITMAPINFO));
memcpy(pDIB + sizeof(BITMAPINFO),m_pImageBuffer,dwImageSize);
::GlobalUnlock((HGLOBAL) hDIB);
CRect rc(0,0,320,240);
PaintDIB(pDC->GetSafeHdc(),&rc,hDIB,&rc,NULL);
GlobalFree(hDIB);
请问这是为什么?