答复
写到文件 (“c:\liangfei.bmp”, GetBitsFromBitmapHandle (BMP))
.子程序 GetBitsFromBitmapHandle, 字节集, , 根据位图句柄取回位图数据。
.参数 hBitmap, 整数型
.局部变量 Bitmap, BITMAP
.局部变量 Resource, 字节集
.局部变量 BitmapFileHeader, BITMAPFILEHEADER
.局部变量 bfh, 字节集
.局部变量 hMemDC, 整数型
.局部变量 BitmapInfo, BITMAPINFO
.局部变量 bi, 字节集
GetObjectA (hBitmap, 5 × 4 + 2 + 2, Bitmap)
hMemDC = CreateCompatibleDC (0)
BitmapInfo.BITMAPINFOHEADER.biSize = 4 × 11
GetDIBits_BimapInfo (hMemDC, hBitmap, 0, 0, 0, BitmapInfo, 0)
Resource = 取空白字节集 (BitmapInfo.BITMAPINFOHEADER.biSizeImage)
BitmapInfo.BITMAPINFOHEADER.biCompression = 0
GetDIBits (hMemDC, hBitmap, 0, Bitmap.bmHeight, Resource, BitmapInfo, 0)
' 构造位图信息
bi = 取空白字节集 (BitmapInfo.BITMAPINFOHEADER.biSize)
CopyMemory_BITMAPINFO (bi, BitmapInfo, BitmapInfo.BITMAPINFOHEADER.biSize)
' 构造位图文件头
BitmapFileHeader.bfType = 19778
BitmapFileHeader.bfOffBits = 2 × 4 + 3 × 2 + BitmapInfo.BITMAPINFOHEADER.biSize
BitmapFileHeader.bfSize = BitmapFileHeader.bfOffBits + BitmapInfo.BITMAPINFOHEADER.biSizeImage
BitmapFileHeader.bfReserved1 = 0
BitmapFileHeader.bfReserved2 = 0
bfh = 取空白字节集 (14)
CopyMemory_BITMAPFILEHEADER (bfh, BitmapFileHeader, 14)
DeleteDC (hMemDC)
返回 (bfh + bi + Resource)
