人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統(tǒng)下載站 > 技術開發(fā)教程 > 詳細頁面

如何等比例縮放圖像

如何等比例縮放圖像

更新時間:2022-09-21 文章作者:未知 信息來源:網絡 閱讀次數(shù):

作者:徐景周

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

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

涵數(shù)如下所示:

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


聯(lián)系方式:

EMAIL:jingzhou_xu@163.net

未來工作室(Future Studio)

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 宁远县| 朝阳市| 富民县| 新沂市| 溆浦县| 勐海县| 临漳县| 扎鲁特旗| 务川| 玉屏| 浠水县| 柘荣县| 游戏| 苗栗县| 林州市| 柏乡县| 博白县| 呼玛县| 木里| 双牌县| 威信县| 青浦区| 余姚市| 东兰县| 米林县| 乌审旗| 汤原县| 博兴县| 井冈山市| 莎车县| 丰台区| 崇信县| 米脂县| 陵水| 尖扎县| 梁河县| 墨竹工卡县| 永济市| 平安县| 娱乐| 五指山市|