2011-11-07 202 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