facebook是如何按比例显示你的头像的?他们使用某种算法吗?我注意到个人资料图片div的最大宽度是180像素,高度与原始高度成正比。
发布于 2011-11-07 09:13:08
这很简单。在服务器端,您获得原始纵横比,然后根据该值计算高度。
例如,您有一张比例为3/4 (1,333)的照片。如果最大宽度为180px,则只需将此值除以纵横比即可。最终的高度应该在135px左右。
180px ----- 4px
Hpx ----- 3px
180 * 3 = 4H
4H = 540
H = 540/4 = 135px就是这样:D
发布于 2011-11-07 09:07:27
如果您只在img标记中指定一种大小,它将缩放另一种大小(高/宽)以匹配。
例如:
<img src='test.jpg' width'150'>如果源图像在300x400时为3:4,这将使高度自动为200
发布于 2012-01-22 20:08:02
我在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.666666667https://stackoverflow.com/questions/8031738
复制相似问题