但肯定可以得到原始的尺寸的,你扫描不同大小的位图,到word看看,word显示了扫描前位图的实际尺寸,这个尺寸可能是根据计算得到的,位图的头好象包含像素尺寸,和每厘米包含的像素。

解决方案 »

  1.   

    首先说明word里面的实际尺寸也不是严格的,如果你调整显示器,就可以使它显示得不准确。winNT固定的认为17寸显示面积是320*240mm,15寸的也是一个固定值,具体多少忘记了,使用MM_LOMETRIC方式可以获得。再以MM_TEXT方式获得分辨率。               希望显示的尺寸*分辨率
      目标象素点数=—————————————
                     获得的系统尺寸                 最后用stretch函数即可。这种方法在不同类型的显示器上大小是差不多的。
      

  2.   

    先用getsystemmeix(记不清楚了)得到分辨录。
    然后在bmp的头信息里面得到位图的大小。
    算一下就ok了。
    good luck
      

  3.   

    位图的文件头有两项biXPelsPerMeter、biYPelsPerMeter是关于实际尺寸的数据
      

  4.   

    HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, "Bitmap1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    DIBSECTION ds;
    GetObject(hBitmap, sizeof(ds), &ds);
    if(ds.dsBmih.biXPelsPerMeter && ds.dsBmih.biYPelsPerMeter)
    {
       float fWidthMeter = (float)ds.dsBmih.biWidth/(float)ds.dsBmih.biXPelsPerMeter;
       float fHeightMeter = (float)(abs(ds.dsBmih.biHeigth))/(float)ds.dsBmih.biYPelsPerMeter;
    }
    但是这并不总是可靠的,因为很多Bitmap中biXPelsPerMeter和biYPelsPerMeter并没有填入值。