关于图片按比例自适应缩放

2016-02-17 02:59 1 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的关于图片按比例自适应缩放,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 平面设计 】

今天在看视觉规范的时候,大高走过来说帮他们那边看一个问题。又是一个关于自适应的问题。不过,我喜欢。瞄了一下,需求是这样的:用户上传照片,照片的尺寸未知;需要生成一个预览,这个预览图要根据提供给用户预览的区域自应用,并且居中;如果图片太大,需要按比例缩放。如下图。

关于图片按比例自适应缩放,PS教程,图老师教程网

 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/pmsj/)

瞄了一下,居中可以用 text-align:center; 来实现。而按比例缩放,利用预设 img / 的 width 、height 属性解决不了。因为用户图片可能是很长的,也可能是很宽的。在线上想了一下他们的关系,按条件来判断是这样的:

if(实际宽度  预览最大宽度) {缩放宽度 = 预览最大宽度}if(实际高度  预览最大高度) {缩放高度 = 预览最大高度}

但是这样会有问题,比如当宽度和高度都被缩放,如果缩放比较不同,图片就不是按比例缩放,会变得非常丑。为了让它按比例缩放,就需要做各种判断了。那这样就违背了我们希望程序自动化的原则了。再想想,虽然不喜欢数学,但数学还是很好用的,应该有其他办法。而既然是按比例缩放,何不用实际图像和预览区域宽度作的比例来计算他们关系?hmmmm 果然 OK。实际上我们永远都只需要缩放宽度或高度中的其中一个。因为比例只有大和小种情况。具体的,写一个函数来实现它吧:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/pmsj/)
/** * 图片按比例自适应缩放 * @param img {Element} 用户上传的图片 * @param maxWidth {Number} 预览区域的最大宽度 * @param maxHeight {Number} 预览区域的最大高度 */var resizeImg = function(img, maxWidth, maxHeight){var w = img.width, h = img.height;// 当图片比预览区域小时不做任何改变if(w  maxWidth && h  maxHeight) return;  // 当实际图片比例大于预览区域宽高比例时// 缩放图片宽度,反之缩放图片宽度w/h  maxWidth/maxHeight  ? img.width = maxWidth : img.height = maxHeight;};

来源:https://www.tulaoshi.com/n/20160217/1577871.html

延伸阅读
标签: Web开发
公司的项目中需要显示由用户提供URI链接的图片,可是预先无法获知图片的尺寸大小,如果图片尺寸过大将会影响页面布局。最理想的解决方案自然是自动生成缩略图,涉及的后台工作较为复杂,用CSS进行控制是一个可以接受的捷径。 如果用width属性强行设定显示尺寸似乎太不智能。幸好Firefox/Opera/IE7都提供了max-width属性支持。假定希望...
标签: Web开发
农历七月初七也就是七夕被誉为中国的情人节,七夕的起源来自于古老的神话故事“牛郎织女”,每年的农历七月七,为了祝福这对天上人间的神仙眷侣重逢的日子,许多商家和大众都开展一系列活动来庆祝。今年七夕就快到了,我们使用FireWorks工具绘制一张牛郎织女的美图,为他们搭建一座鹊桥以示祝福(图1)。 图1 一、背景设计 1...
前几天在做腾讯微博的微卖场的时候,遇到需要做图片居中的需求。也就是说,商品列表中的图片需要居中显示。因为图片是卖家自己把商品图片链接过来,商品图片的大小没有做限制和过滤。所以我们需要做的是,让图片在容器当中水平居中、垂直居中、图片自适应容器大小。图片原图大小和在容器中显示的大小有这样的关系: 假设容器大小为200像素*200...
procedure AutoFitable(AGrids: TStringGrid); //传入TStringGrid对像即可, 2004/10/28,CoolSlob var   I, J: Integer;   MaxLenRow: Integer;   CurRowLen: Integer; begin   inherited;   for J := 0 to AGrids.ColCount - 1 do   begin     MaxLenRo...
很多新手朋友们都不知道如何批量修改图片大小,其实很简单的,本文将为大家介绍下批量修改图片的方法,有固定长宽方法、按比例缩放方法,两种方法都可以实现,不会的朋友可以收藏下以备不时之需。 描述:每天要做表格,每个表格要插入五张照片。固定大小,一张张修改很麻烦,能有快捷的方法嘛?我想把图片大小设置成5.48cm 解决:按alt+F11。...

经验教程

666

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部