2011-11-07 179 views
0

Facebook如何按比例显示您的个人资料图片?他们使用一些算法吗?我注意到配置文件图片div最大宽度是180像素,高度与原始高度成正比。按比例个人资料图片

回答

1

如果您只在img标签中指定一个尺寸,则会缩放其他尺寸(高度/宽度)以匹配。

例如:

<img src='test.jpg' width'150'> 

这将自动地使高度200,如果源图像是3:4在300x400

+0

这是对带宽的浪费,看起来像在一些浏览器的废话。 – ceejayoz

+0

@ceejayoz。虽然你所说的有一些道理,但现代浏览器在渲染这些变化方面正在变得越来越好。此外,如果您希望图像在调整窗口大小时进行缩放,这是容纳图像的最佳方法(假设人们不会在原始图像大小上过多以及它们允许缩放多少)。 – ScottS

+0

我期待着每个人都在使用现代浏览器的那一天。在此之前,我将使用服务器端调整大小而不是流体图像大小。 :-) – ceejayoz

3

这是简单的。在服务器端,您可以获得原始高宽比,然后根据此值计算高度。

例如,您有一张3/4(1,333)比例的照片。如果您的最大宽度为180像素,则应该简单地将此值除以高宽比。最终的高度应该在135px左右。

180px ----- 4px 
Hpx ----- 3px 

180 * 3 = 4H 
4H = 540 
H = 540/4 = 135px 

就是这样:d

+0

谢谢! :)! –

+0

@matt如果这是最有用的答案,请确保通过单击复选标记将其标记为正确。 – KatieK

0

好,我做在PHP的东西缩放比例,它使用一个给定的宽度,高度,以及可选的最大宽度/高度ü希望(取决于所给定的宽度和高度)

function scaleProportional($img_w,$img_h,$max=50) 
    { 
     $w = 0; 
     $h = 0; 

     $img_w > $img_h ? $w = $img_w/$img_h : $w = 1; 
     $img_h > $img_w ? $h = $img_h/$img_w : $h = 1; 

     $ws = $w > $h ? $ws = ($w/$w) * $max : $ws = (1/$h) * $max; 
     $hs = $h > $w ? $hs = ($h/$h) * $max : $hs = (1/$w) * $max; 

     return array(
      'width'=>$ws, 
      'height'=>$hs 
     ); 
    } 

用法:

  $getScale = scaleProportional(600,200,500); 
      $targ_w = $getScale['width']; //will return 500 
      $targ_h = $getScale['height']; //will return 166.666666667 
相关问题