请教各位如何获取BMP图片的宽高,单位是厘米。

解决方案 »

  1.   

    要获得BMP图像的宽和高,单位是像素的比较简单,
    如果要用厘米,可能比较麻烦,可能要改变设备环境CDC的映射方式。
    用函数:CDC* pDC;
    pDC->SetMapMode( int nMapMode );
    当nMapMode取MM_LOMETRIC时,表示一个像素为0.1mm。至于转换为厘米,应该是单位之间的换算!
      

  2.   

    DWORD WINAPI DIBWidth(LPSTR lpDIB)
    { LPBITMAPINFOHEADER lpbmi;LPBITMAPCOREHEADER lpbmc;
    lpbmi=(LPBITMAPINFOHEADER)lpDIB;
    lpbmc=(LPBITMAPCOREHEADER)lpDIB;return (DWORD)lpbmc->bcWidth;
    }
      

  3.   

    typedef struct tagBITMAPINFOHEADER{ // bmih 
        DWORD  biSize; 
        LONG   biWidth; 
        LONG   biHeight; 
        WORD   biPlanes; 
        WORD   biBitCount 
        DWORD  biCompression; 
        DWORD  biSizeImage; 
        LONG   biXPelsPerMeter; 
        LONG   biYPelsPerMeter; 
        DWORD  biClrUsed; 
        DWORD  biClrImportant; 
    } BITMAPINFOHEADER; 宽 = biWidth  / biXPelsPerMeter * 100
    高 = biHeight / biYPelsPerMeter * 100
      

  4.   

    一个象素好像有固定的大小。
    先看bmp有多少象素长宽。
    在计算bmp的cm长宽。
      

  5.   

    换算厘米单位是需要知道dpi才可以得,不同得dpi之下单位长度也不同得