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