比例资料图片

时间:2011-11-07 01:05:11

标签: php html css facebook

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

3 个答案:

答案 0 :(得分:3)

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

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

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

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

就是这样:D

答案 1 :(得分:1)

如果你只在img标签中指出一个尺码,它会缩放另一个尺寸(高度/宽度)以匹配。

例如:

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

如果源图像在300x400

处为3:4,这将使高度自动为200

答案 2 :(得分: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