【发布时间】:2011-11-10 09:50:28
【问题描述】:
使用 GetDIBits 函数从 HBITMAP 接收到的 DIB 数据应该分配多少内存?
GetDIBits 函数在 MSDN 中描述如下:
int GetDIBits(
__in HDC hdc,
__in HBITMAP hbmp,
__in UINT uStartScan,
__in UINT cScanLines,
__out LPVOID lpvBits,
__inout LPBITMAPINFO lpbi,
__in UINT uUsage
);
但是,接收数据 lpvBits 的缓冲区必须在调用 GetDIBits 之前分配,因为 GetDIBits 不会自动分配。
问题是应该分配多少内存来接收 DIB 数据?假设HBITMAP的width&height为Bmp_Width&Bmp_Height;并且位图是 32 位 (RGBA)。
【问题讨论】:
-
有个函数叫 CreateDIBitmap 但就是不知道这个函数能不能解决这个问题
标签: c++ visual-c++ bitmap gdi dib