<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      如何等比例縮放圖像

      [摘要]作者:徐景周在放大或縮小圖像時,如何能最好的保持圖像原態比例來顯示呢?下面提供一個涵數可幫你來實現,調用它后,返回的矩形區域既為最佳顯示圖像大小。l 涵數中的第一個參數rcScreen為圖像要被顯示的矩形大小,第二個參數sizePicture為圖像自身大小,第三個參數bCenter...
      作者:徐景周

      在放大或縮小圖像時,如何能最好的保持圖像原態比例來顯示呢?下面提供一個涵數可幫你來實現,調用它后,返回的矩形區域既為最佳顯示圖像大小。

      l         涵數中的第一個參數rcScreen為圖像要被顯示的矩形大小,第二個參數sizePicture為圖像自身大小,第三個參數bCenter為是否居中顯示,返回值CRect既為圖像最佳顯示大小。

      涵數如下所示:

      CRect RectSizeWithConstantRatio( CRect* rcScreen,
                                             CSize sizePicture,
                                             BOOL bCenter)
      {
        CRect rect(rcScreen);
        double dWidth = rcScreen->Width();
        double dHeight = rcScreen->Height();
        double dAspectRatio = dWidth/dHeight;

        double dPictureWidth = sizePicture.cx;
        double dPictureHeight = sizePicture.cy;
        double dPictureAspectRatio = dPictureWidth/dPictureHeight;

        //If the aspect ratios are the same then the screen rectangle
        // will do, otherwise we need to calculate the new rectangle

        if (dPictureAspectRatio > dAspectRatio)
        {
          int nNewHeight = (int)(dWidth/dPictureWidth*dPictureHeight);
          int nCenteringFactor = (rcScreen->Height() - nNewHeight) / 2;
          rect.SetRect( 0,
                        nCenteringFactor,
                        (int)dWidth,
                        nNewHeight + nCenteringFactor);

        }
        else if (dPictureAspectRatio < dAspectRatio)
        {
          int nNewWidth =  (int)(dHeight/dPictureHeight*dPictureWidth);
          int nCenteringFactor = (rcScreen->Width() - nNewWidth) / 2;
          rect.SetRect( nCenteringFactor,
                        0,
                        nNewWidth + nCenteringFactor,
                        (int)(dHeight));
        }

        return rect;
      };


      聯系方式:

      EMAIL:jingzhou_xu@163.net

      未來工作室(Future Studio)


      日韩精品一区二区三区高清