节能网站源码深圳外贸业务员工资
news/
2025/10/3 14:34:26/
文章来源:
节能网站源码,深圳外贸业务员工资,青浦郑州阳网站建设,网页设计模板html代码字体大小void SaveBitmapToFile(HBITMAP hBitmap, char* szfilename)
{HDC hdc; //设备描述表int ibits;WORD wbitcount; //当前显示分辨率下每个像素所占字节数//位图中每个像素所占字节数#xff0c;定义调色板大小#xff0c;位图中像素字节大小#xff0c;位图文件大小 //设备描述表int ibits;WORD wbitcount; //当前显示分辨率下每个像素所占字节数//位图中每个像素所占字节数定义调色板大小位图中像素字节大小位图文件大小 写入文件字节数DWORD dwpalettesize 0, dwbmbitssize, dwdibsize, dwwritten;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 if (ibits 16)wbitcount 16;else if (ibits 24)wbitcount 24;elsewbitcount 32;//计算调色板大小if (wbitcount 8)dwpalettesize (1 wbitcount) * sizeof(RGBQUAD);//设置位图信息头结构GetObject(hBitmap, sizeof(BITMAP), (LPSTR)bitmap);bi.biSize sizeof(BITMAPINFOHEADER);bi.biWidth bitmap.bmWidth;bi.biHeight bitmap.bmHeight;bi.biPlanes 1;bi.biBitCount wbitcount;bi.biCompression BI_RGB;bi.biSizeImage 0;bi.biXPelsPerMeter 0;bi.biYPelsPerMeter 0;bi.biClrUsed 0;bi.biClrImportant 0;dwbmbitssize ((bitmap.bmWidth * wbitcount 31) / 32) * 4 * bitmap.bmHeight;//为位图内容分配内存hdib GlobalAlloc(GHND, dwbmbitssize dwpalettesize sizeof(BITMAPINFOHEADER));lpbi (LPBITMAPINFOHEADER)GlobalLock(hdib);*lpbi bi;// 处理调色板 hpal GetStockObject(DEFAULT_PALETTE);if (hpal){hdc ::GetDC(NULL);holdpal SelectPalette(hdc, (HPALETTE)hpal, false);RealizePalette(hdc);}// 获取该调色板下新的像素值GetDIBits(hdc, hBitmap, 0, (UINT)bitmap.bmHeight, (LPSTR)lpbi sizeof(BITMAPINFOHEADER) dwpalettesize, (BITMAPINFO*)lpbi, DIB_RGB_COLORS);//恢复调色板 if (holdpal){SelectPalette(hdc, (HPALETTE)holdpal, true);RealizePalette(hdc);::ReleaseDC(NULL, hdc);}//创建位图文件 fh CreateFile(szfilename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL);if (fh INVALID_HANDLE_VALUE)return false;// 设置位图文件头bmfhdr.bfType 0x4d42; // bmdwdibsize sizeof(BITMAPFILEHEADER) sizeof(BITMAPINFOHEADER) dwpalettesize dwbmbitssize;bmfhdr.bfSize dwdibsize;bmfhdr.bfReserved1 0;bmfhdr.bfReserved2 0;bmfhdr.bfOffBits (DWORD)sizeof(BITMAPFILEHEADER) (DWORD)sizeof(BITMAPINFOHEADER) dwpalettesize;//写入位图文件头WriteFile(fh, (LPSTR)bmfhdr, sizeof(BITMAPFILEHEADER), dwwritten, NULL);//写入位图文件其余内容WriteFile(fh, (LPSTR)lpbi, dwdibsize, dwwritten, NULL);//清除 GlobalUnlock(hdib);GlobalFree(hdib);CloseHandle(fh);
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925992.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!