从 CBitmap类对象中获取位图尺寸我们可用GetBitmap()函数 。
//
变量bitmap是一个CBitmap类对象
BITMAP bm;
bitmap.GetBitmap( & bm );
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
BITMAP bm;
bitmap.GetBitmap( & bm );
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
如果你有一个 HBITMAP句柄,你可以将它附加到一个CBitmap类对象上,再用上述方法
获取尺寸
//
变量hBmp是一个HBITMAP句柄
BITMAP bm;
::GetObject( hBmp, sizeof ( bm ), & bm );
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
BITMAP bm;
::GetObject( hBmp, sizeof ( bm ), & bm );
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
从BMP位图文件中获取位图尺寸可用下述方法。
CFile file;
// sBMPFileName是BMP位图文件名
if ( ! file.Open( sBMPFileName, CFile::modeRead) )
return ;
BITMAPFILEHEADER bmfHeader;
// 读文件头
if (file.Read((LPSTR) & bmfHeader, sizeof (bmfHeader))
!= sizeof (bmfHeader))
return ;
// 确定文件类型标记’BM’
if (bmfHeader.bfType != ((WORD) (’M’ << 8 ) | ’B’))
return ;
BITMAPINFOHEADER bmiHeader;
if (file.Read((LPSTR) & bmiHeader, sizeof (bmiHeader))
!= sizeof (bmiHeader))
return ;
int bmWidth = bmiHeader.biWidth;
int bmHeight = bmiHeader.biHeight;
// sBMPFileName是BMP位图文件名
if ( ! file.Open( sBMPFileName, CFile::modeRead) )
return ;
BITMAPFILEHEADER bmfHeader;
// 读文件头
if (file.Read((LPSTR) & bmfHeader, sizeof (bmfHeader))
!= sizeof (bmfHeader))
return ;
// 确定文件类型标记’BM’
if (bmfHeader.bfType != ((WORD) (’M’ << 8 ) | ’B’))
return ;
BITMAPINFOHEADER bmiHeader;
if (file.Read((LPSTR) & bmiHeader, sizeof (bmiHeader))
!= sizeof (bmiHeader))
return ;
int bmWidth = bmiHeader.biWidth;
int bmHeight = bmiHeader.biHeight;