工控编程吧

标题: MFC如何获取位图的大小 [打印本页]

作者: qq263946146    时间: 2019-7-14 11:02
标题: MFC如何获取位图的大小
用GetBitmap()函数确定位图的高度和宽度:

        // The variable bitmap is a CBitmap object
        BITMAP bm;
        bitmap.GetBitmap( &bm );
        bmWidth = bm.bmWidth;
        bmHeight = bm.bmHeight;

如果已有HBITMAP,可以附加它到CBitmap对象:

        // The variable hBmp is a HBITMAP
        BITMAP bm;
        ::GetObject( hBmp, sizeof( bm ), &bm );
        bmWidth = bm.bmWidth;
        bmHeight = bm.bmHeight;

对于BMP文件中的图像,可以采用下面方法:

        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;"


        // 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;







欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4