GDI-GetBitmapBits获取兼容位图的数据
设备独立位图和兼容位图:
设备独立位图(Device-Independent Bitmap,简称DIB)和兼容位图(Compatible Bitmap,简称DDB)是两种不同的位图类型。
DIB是一种独立于设备的位图格式,它的像素格式与设备无关,可以在不同分辨率和颜色深度的设备上显示。DIB可以通过使用位图信息头和像素数组来存储图像数据,因此它具有较高的灵活性和可移植性。DIB通常用于打印机和屏幕显示等需要在不同设备上显示的场合。
DDB是一种与设备相关的位图格式,它的像素格式与设备有关,只能在特定的设备上显示。DDB通常用于在特定的设备上绘制图形,如窗口、按钮等控件。
因此,DIB和DDB的主要区别在于它们的像素格式是否与设备有关。如果需要在不同设备上显示图像,应该使用DIB;如果需要在特定设备上绘制图形,应该使用DDB
BITMAP bm; HBITMAP hbmp = (HBITMAP)::LoadImage(NULL, _T("D:\\bb\\tu\\1.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE | LR_CREATEDIBSECTION);//从文件中获取位图 ::GetObject(hbmp, sizeof(BITMAP), (PSTR)&bm);//获取对象信息 BYTE* pbyte = new BYTE[bm.bmWidth * bm.bmHeight * 4]; LONG l= GetBitmapBits(hbmp, bm.bmWidth* bm.bmHeight*4, pbyte);//获取兼容位图的数据 /* 参数1:HBITMAP hbit 位图句柄 参数2:LONG cb 要从位图复制到缓冲区中的字节数 字节数=位图宽*位图高*4 (4表示4通道ARGB) 参数3:LPVOID lpvBits 指向用于接收位图位的缓冲区的指针。 这些位存储为字节值的数组 返回值:如果函数成功,则返回值是复制到缓冲区的字节数 如果函数失败,则返回值为零 */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2020-05-18 CAD-斜线的绘制与标注
2019-05-18 高等数学学习目录
2019-05-18 功率计算练习
2019-05-18 功率基础题练习
2019-05-18 Mixly-指令