现在的位置: 首页 > 综合 > 正文

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

2013年11月03日 ⁄ 综合 ⁄ 共 728字 ⁄ 字号 评论关闭

一、利用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为图片高度

抱歉!评论已关闭.