一个图像显示的问题.
我已经得到了一个图像的RGB的值,存储在lData中(因此现在的图像相当于是24bit的数据),而我的显卡是16bit的,我如何在这样的显卡上正确的显示我的RGB数据.我现在用的是以下的方法:
HDC DC = GetDC(0);
LPVOID pDataScreen = NULL;
BITMAPINFOHEADER bmpHeader;
ZeroMemory(&bmpHeader, sizeof(BITMAPINFOHEADER));
bmpHeader.biSize = sizeof(BITMAPINFOHEADER);
bmpHeader.biWidth = width;
bmpHeader.biHeight = height;
bmpHeader.biPlanes = 1;
bmpHeader.biBitCount = 16;
bmpHeader.biCompression = BI_BITFIELDS;
bmpHeader.biSizeImage = bmpHeader.biWidth*bmpHeader.biHeight*2;
bitmap = CreateDIBSection(hdc,(BITMAPINFO*)&bmpHeader,DIB_RGB_COLORS,&pDataScreen,NULL,0);
hdcMem = CreateCompatibleDC( hdc );
SelectObject( hdcMem, bitmap );
memcpy(pDataScreen,(void *)pData,width*height*2);
BitBlt( hdc,(320-176)/2, (240-144)/2-20,320, 240,hdcMem,0, 0,SRCCOPY);
ReleaseDC( MainQue, hdc );
DeleteObject(bitmap);
DeleteDC(hdcMem);
可是这样不能正常显示,请问问题出在哪里,还请大家指点