VC中获取BMP图片高度与宽度的两种方法

    技术2026-05-27  8

    一、利用BMP文件格式读取

     HANDLE hFile;

     BITMAPFILEHEADER bmpfheader;

     BITMAPINFOHEADER bmpiheader;

     DWORD nBytesRead;

     hFile=CreateFile(filename,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

     ReadFile(hFile,&bmpfheader,sizeof(BITMAPFILEHEADER),&nBytesRead,NULL);

     ReadFile(hFile,&bmpiheader,sizeof(BITMAPINFOHEADER),&nBytesRead,NULL);

     CloseHandle(hFile);

    其中,bmpiheader.biWidth为图片的宽度,bmpiheader.biHeight为图片的高度

    参考资料:BMP文件格式分析(http://asp.6to23.com/iseesoft/devdoc/imgdoc/bmp_fileformat.htm

    二、利用GDI中的GetObject函数

    //m_hdc为当前窗体的DC句柄。

    HDC hdc;

     BITMAP bmp;

     hdc=CreateCompatibleDC(m_hdc);

     hPic=(HBITMAP)LoadImage(NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

     GetObject(hPic,sizeof(BITMAP),&bmp);

    其中bmp.bmWidth为图片宽度,bmp.bmHeight为图片高度

    最新回复(0)