如何使用::CreateDIBSection生成HBITMAP
小弟在写一个修改图片的函数,过程如下:
1、先读取一个HBITMAP hBitmap1,拿到其中的颜色矩阵LPBYTE pBits(包含着每一个像素的颜色信息);
2、将pBits其中的某些像素值进行修改;
3、然后使用修改后的颜色矩阵pBits重新生成一个新的HBITMAP hBitmap2;
我的问题在第三步,其中大致代码如下:
//1步骤:读取HBITMAP hBitmap1,获取其中的颜色矩阵
LPBYTE pBits;
pBits = (LPBYTE )lpbi + sizeof(BITMAPINFOHEADER);
//2步骤:修改某些点的颜色,对pBits进行操作
//3步骤:使用修改后的pBits得到新的hBitmap2
HBITMAP hBitmap2;
BITMAPINFO bif;
bif.bmiHeader.biBitCount = 32;
bif.bmiHeader.biPlanes = 1;
bif.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bif.bmiHeader.biWith = 25;
bif.bmiHeader.biHeight = 25;
bif.bmiHeader.biCompression = BI_RGB;
hBitmap2 = ::CreateDIBSection(NULL,&bif,0,(void**)&pBits,NULL,0);
问题是:我将hBitmap2转成bmp图片后,总是得到一副黑图,我该怎么做呢?有没有具体的CreateDIBSection函数的例子呢?