Getting the dimensions of a bitmap
For CBitmap objects we can use the GetBitmap() function to determine the height and width of the bitmap.
// The variable bitmap is a CBitmap object BITMAP bm; bitmap.GetBitmap( &bm ); bmWidth = bm.bmWidth; bmHeight = bm.bmHeight;
If you have a HBITMAP, you can attach it to a CBitmap object and use the method shown above or you can use
// The variable hBmp is a HBITMAP BITMAP bm; ::GetObject( hBmp, sizeof( bm ), &bm ); bmWidth = bm.bmWidth; bmHeight = bm.bmHeight;
For images in a BMP file, you can use something like
CFile file;
// sBMPFileName is the BMP filename
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;
获取位图尺寸的方法
博客介绍了获取位图尺寸的方法。对于CBitmap对象,可使用GetBitmap()函数确定位图的高度和宽度;若有HBITMAP,可将其附加到CBitmap对象上使用上述方法,也可采用其他方式;对于BMP文件中的图像,也有相应办法。
1649

被折叠的 条评论
为什么被折叠?



