HBITMAP getBitmapInfo(char* path)
{
BITMAPFILEHEADER bmpfile = { 0 };
BITMAPINFO bmpinfo = {0};
HBITMAP hBitmap;
HDC hdc = GetDC(NULL);
/*-----------------------------------------------------------------------------------*/
FILE *fp = fopen(path, "rb");
unsigned long size = 0, i = 0;
if (!fp)
{
printf("打开文件失败!!!\n");
return (HBITMAP)-1;
}
fseek(fp, 0L, SEEK_END);
size = ftell(fp);/*获取图片的字节数*/
fseek(fp, 0L, SEEK_SET);
unsigned char* filesize = (unsigned char*)malloc(size);/*分配和图片一样大小的内存*/
/*-----------------------------------------------------------------------------------*/
fread(filesize, size, 1, fp);/*把文件信息读取到filesize里*/
memcpy(&bmpfile, filesize, sizeof(BITMAPFILEHEADER));
memcpy(&bmpinfo, filesize + sizeof(BITMAPFILEHEADER), sizeof(BITMAPINFOHEADER));
hBitmap = CreateDIBitmap(hdc, &bmpinfo.bmiHeader, CBM_INIT,
(filesize + bmpfile.bfOffBits), &bmpinfo, DIB_RGB_COLORS);
/*---------------------------------------------------------------------------------*/
ReleaseDC(NULL, hdc);
fclose(fp);
free(filesize);
return hBitmap;
}
以文件读取的方式加载本地bmp图片
最新推荐文章于 2024-05-01 19:16:44 发布