如何等比例缩放图像

原创 2002年01月18日 09:37:00
 

如何等比例缩放图像

作者:徐景周

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在放大或缩小图像时,如何能最好的保持图像原态比例来显示呢?下面提供一个涵数可帮你来实现,调用它后,返回的矩形区域既为最佳显示图像大小。

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)

 

图像等比例缩小【OpenCV】

原图: C++代码: nt main() { cv::Mat img = cv::imread("../Daniel Norris.jpg", 0); int w = img.cols;...
  • panda1234lee
  • panda1234lee
  • 2016年11月05日 00:36
  • 2173

OpenCV入门学习(一)图像放缩【简单的按比例放缩,无技术含量】

OpenCV入门学习(一)图像放缩【简单的按比例放缩,无技术含量】
  • u012816621
  • u012816621
  • 2015年04月10日 21:07
  • 3228

图片等比例缩放算法

在许多语言中,都希望图片可以等比例缩小或者放大,所以在此提供一个所有语言通用的图片等比例缩小方法的算法。这里以java语言为例子  1.给两个值,设置你想要设置图片的宽和高;定义两个真正的宽和高;这...
  • qq_26413219
  • qq_26413219
  • 2017年07月07日 13:56
  • 767

显示页面等比例缩放

最近在工作中遇到一个页面放大问题?放大目标在iframe中,自己的实验贴出来,希望能帮到有这样需求的人。 不多说,直接上图,清楚明白。 (1)正常比例 (2)放大 (3)缩小 一、CSS3...
  • u011721264
  • u011721264
  • 2016年08月26日 09:09
  • 2413

用javascript实现图片等比例缩放

js部分: $(window).load(function() {   ImageAutoResize('div[id=demotu]');   function Image...
  • Lankecms
  • Lankecms
  • 2017年04月22日 14:45
  • 341

php 实现图片等比例缩放 原理(初级)

主要说明下几个用到的函数: imagecreatefromjpeg() 返回一图像标识符,代表了从给定的文件名取得的图像。 int imagesx ( resource image) 返回 ima...
  • Iamduoluo
  • Iamduoluo
  • 2011年08月23日 13:30
  • 4898

iOS开发之UIImage等比缩放

前面讲了截取UIImage指定大小区域,很方便的截取UIImage。今天要和大家分享的是UIImage的缩放。...
  • conslee
  • conslee
  • 2015年07月29日 10:20
  • 3772

php 等比例缩放图像

//缩放的宽度 $width=120; //缩放的高度 $height=120; //图片的路径 $filename="upload/1.jpeg"; //获得原始图片的宽度和高度 list($wi...
  • chunxiaqiudong5
  • chunxiaqiudong5
  • 2017年01月04日 22:57
  • 137

图像的等比例缩放

$(function() {              $("#originalWidth").val($("#img1").width());              $("#original...
  • jinyeweiyang
  • jinyeweiyang
  • 2014年10月30日 14:17
  • 340

PS 在PS中如何等比例放大缩小图片

在图层面板选中图片所在图层。ctrl+t自由变换,可以看到边上有九个点,按住shift,之后鼠标在四个角的点拉伸。就可以等比例缩放。缩放同时按住alt可改变图片缩放的中心点...
  • dragonbamboo261
  • dragonbamboo261
  • 2013年09月08日 21:14
  • 1686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何等比例缩放图像
举报原因:
原因补充:

(最多只允许输入30个字)