Win32显示图像

本文介绍如何在Windows环境下利用Win32 API函数CreateDIBSection和BitBlt来显示图像,避免使用大型库如QT或SDL。通过CreateDIBSection创建内存位图并存储图像数据,然后使用BitBlt绘制到屏幕上,实现简洁的图像显示功能。
摘要由CSDN通过智能技术生成

在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);
    }
}

上述代码只表示完成程序功能的流程,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值