對於一個CBitmap 對象,我們能用GetBitmap() 函數來確定其寬度和高度。
// The variable bitmap is a CBitmap object bitmap變量是一個CBitmap對象
BITMAP bm;
bitmap.GetBitmap( &bm );
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
如果你有一個HBITMAP位圖句柄,你可以將它附屬於一個CBitmap對象,然後用上面講到的方法或下面的方法來確定其寬度和高度。
// The variable hBmp is a HBITMAP hBmp變量是一個HBITMAP位圖句柄
BITMAP bm;
::GetObject( hBmp, sizeof( bm ), &bm );
bmWidth = bm.bmWidth;
bmHeight = bm.bmHeight;
對於一個文件,你能用下面的代碼來實現:
CFile file;
// sBMPFileName is the BMP filename sBMPFileName是一個位圖文件名
if( !file.Open( sBMPFileName, CFile::modeRead) )
return ;
BITMAPFILEHEADER bmfHeader;
// Read file header 讀文件頭信息
if (file.Read((LPSTR)&bmfHeader, sizeof(bmfHeader)) != sizeof(bmfHeader))
return ;
// File type should be 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;