hbitmap保存为图片

这段代码展示了如何使用C++将HBITMAP类型的位图对象保存为图片文件。通过创建设备上下文(HDC),获取位图信息,定义BITMAPFILEHEADER和BITMAPINFOHEADER结构,然后写入文件。
摘要由CSDN通过智能技术生成

static BOOL SaveBitmapToFile(HBITMAP hBitmap, std::string szfilename)
{
HDC hDC;
//当前分辨率下每象素所占字节数
int iBits;
//位图中每象素所占字节数
WORD wBitCount;
//定义调色板大小, 位图中像素字节大小 ,位图文件大小 , 写入文件字节数
DWORD dwPaletteSize = 0, dwBmBitsSize = 0, dwDIBSize = 0, dwWritten = 0;
//位图属性结构
BITMAP Bitmap;
//位图文件头结构
BITMAPFILEHEADER bmfHdr;
//位图信息头结构
BITMAPINFOHEADER bi;
//指向位图信息头结构
LPBITMAPINFOHEADER lpbi;
//定义文件,分配内存句柄,调色板句柄
HANDLE fh, hDib, hPal, hOldPal = NULL;

//计算位图文件每个像素所占字节数              
hDC = CreateDC("DISPLAY", NULL, NULL, NULL);
iBits = GetDeviceCaps(hDC, BITSPIXEL)     *     GetDeviceCaps(hDC, PLANES);
DeleteDC(hDC);
if (iBits <= 1)
	wBitCount = 1;
else  if (iBits <= 4)
	wBitCount = 4;
else if (iBits <= 8)
	wBitCount = 8;
else
	wBitCount = 24;

GetObject(hBitmap, siz
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值