设备无关位图


直接显示时,按如下写入:(不将BMPFILEHEADER写入)

m_hDIB=(HDIB)::GlobalAlloc(GHND, sizeof(BITMAPINFOHEADER)+ 1024+bmpinfohead.biSizeImage);

LPSTR lpDIB = (LPSTR) ::GlobalLock(m_hDIB);


memcpy(lpDIB,&bmpinfohead,sizeof(BITMAPINFOHEADER));
memcpy(lpDIB+sizeof(BITMAPINFOHEADER),palette,1024);
memcpy(lpDIB+sizeof(BITMAPINFOHEADER)+1024,pByteData,bmpinfohead.biSizeImage);


::GlobalUnlock(m_hDIB);


而保存bmp文件时,需要再在前面添加写入BMPFILEHEADER信息。


其中,//BMP 文件头的初始化(默认不需改动)

bmpfilehead.bfType = 19778;//即“BM”
bmpfilehead.bfSize = DIBSize;
bmpfilehead.bfReserved1 = 0;
bmpfilehead.bfReserved2 = 0;
bmpfilehead.bfOffBits = 1078;//从文件头至数据区的偏移量

//BMP 信息头的初始化
bmpinfohead.biSize = 40;
bmpinfohead.biWidth = (图像宽)
bmpinfohead.biHeight = (图像高)
bmpinfohead.biBitCount = 8;
bmpinfohead.biPlanes = 1;
bmpinfohead.biCompression = 0;
bmpinfohead.biClrUsed = 0 ;
bmpinfohead.biClrImportant = 0;
bmpinfohead.biSizeImage  = bmpinfohead.biHeight * bmpinfohead.biWidth;
bmpinfohead.biXPelsPerMeter = 1000 /3.26;
bmpinfohead.biYPelsPerMeter =  1000/3.26;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值