2011-12-29 133 views
0

我知道這個問題很常見,但我的問題的主要觀點是,我想知道如何Facebook或其他網站上傳他們的照片在正確的大小。例如。如果我們上傳尺寸:寬度:1000px,高度:20px的圖片。那麼facebook會用該圖片更新狀態更新,但會以正確的比例縮小圖像尺寸。它的絕對值可以縮小圖片的範圍,但我們可以知道圖片非常寬(我自己的寬度非常高的字:P),長的圖片也以正確的比例發佈。PHP正確尺寸上傳圖片

PIC NUMBER 1

PIC NUMBER 2

我已經包括上面的圖像的例子。 Facebook如何計算圖片的大小n比例,並通過保持正確的尺寸,但同時縮小圖片來回顯圖片。

+0

的圖像重建的服務器上實際發生的是,規模化的乘法器(寬* .5)。所以,真的,你根本看不到原始圖像。您正在看到服務器創建的新映像。 – Scott 2011-12-29 23:55:07

+0

@斯科特 - 我知道得到你:( – Samir 2011-12-29 23:55:54

回答

1

此代碼相當冗長,但可能會給您一個關於如何計算圖像尺寸的想法。

參數是源寬度和目標的最大調整大小寬度和高度

function image_resize_dimensions($source_width,$source_height,$thumb_width,$thumb_height) 
{ 
    $source_ratio = $source_width/$source_height; 
    $thumb_ratio = $thumb_width/$thumb_height; 

    // Ratio is Taller 
    if ($thumb_ratio > $source_ratio) 
    { 
    $result_height = $thumb_height; 
    $result_width = $thumb_height * $source_ratio; 
    } 

    // Ratio is Wider 
    elseif ($thumb_ratio < $source_ratio) 
    { 
    $result_width = $thumb_width; 
    $result_height = $thumb_width/$source_ratio; 
    } 

    // Ratio the Same 
    elseif($thumb_ratio == $source_ratio) 
    { 
    $result_height = $thumb_height; 
    $result_width = $thumb_width; 
    } 

    return array('x'=>$result_width,'y'=>$result_height); 

} 
+0

此外,我會添加一個圖像調整大小的示例http://pastebin.com/STzAxrZA – Scuzzy 2011-12-30 00:41:30

+0

thanx很多老兄!! thanx很多!:) – Samir 2011-12-30 00:43:57

+0

當調用image_resize_jpg()時,第一個$ image參數是源的路徑,第二個$ filename是目的地路徑,第三/第四個$ thumb_width/height是重新調整大小的圖像的最大值,第5 $默認最大值爲false,但設置爲true時,將裁剪圖像的某些部分以強制尺寸,第6質量是從0到100的圖像質量,如果您想要傳入現有對象,則爲第7個$ image_object。 – Scuzzy 2011-12-30 00:55:49

0

我認爲有幾個因素。

  1. 的主要因素是內容的寬度圖像顯示在
  2. 圖像的原始寬度
  3. 是否要補全內容與圖像或沒有(Facebook並沒有)

比方說,你有一個寬度爲1000px的圖像。你的內容是400px。你想用你的圖像填充一半的內容,所以你的圖像的結束寬度爲200px。高度只是ca百分比計算(三條規則)。

最後,你會有正確的比例,它適合你的內容。

當然,您也可以檢查圖像是16:9還是4:3,以確定圖像的最大寬度,如第一個示例。

+0

我明白了這些觀點,但我知道比例的最後一部分,即你寫16:9和4:3的部分,而且我已經完成了百分比計算 – Samir 2011-12-30 00:03:20