在windows下将数据以位图的方式显示:
//变量定义
HWND hWnd; //窗口句柄定义
HDC hdc_mem; //缓冲句柄
HBITMAP screen_hb ; // DIB
HBITMAP screen_ob ; // 老的 BITMAP
void* buffer; //数据存储区
BITMAPINFO bi = { { sizeof(BITMAPINFOHEADER), 100, 100, 1, 24, BI_RGB,
100 * 100 * 3, 0, 0, 0, 0 } };
//初始化配置
HDC hdc = GetDC(hWnd);
hdc_mem = CreateCompatibleDC(hdc);
screen_hb = CreateDIBSection(hdc_mem, &bi, DIB_RGB_COLORS, (void**)&buffer, NULL, 0);
if (screen_hb == NULL) return -3;
screen_ob = (HBITMAP)SelectObject(hdc_mem, screen_hb);
ReleaseDC(hWnd, hdc);
//显示数据 dat为位图数据指针,size为1像素所占字节大小
ImageLoad(void* dat, int width, int height,int size)
{
if (hdc_mem && screen_hb)
{
HDC hDC = GetDC(hWnd);
memcpy(buffer, dat, width * height * size);
BitBlt(hDC, 0, 0, width, height, hdc_mem, 0, 0, SRCCOPY);
ReleaseDC(hWnd, hDC);
}
}
上述代码只表示完成程序功能的流程,