2012-02-21 53 views
1

我想用類似於Pinterest的方式來操作圖片/調整圖片的大小,但我不確定接近圖片的最佳方式是什麼。目標是允許縱向和橫向圖像的混合,但對最大高度和寬度設置一些限制。如何在上傳時限制圖片的寬度或高度

我可以看到的問題是,如果我調整到寬度,縱向圖像可能會變得太薄,而對於景觀圖像則相反。

有關如何使用PHP實現這些結果的任何想法?

回答

1

您只需要瞭解圖像的兩個邊緣中的哪一個更長,並按比例計算其他維度。如果最大長度爲1024,那麼如果兩個邊中的一個較大,則將其設置爲1024,並計算另一個以適合比例。然後你會將這兩個值傳遞給你的圖像管理功能。

喜歡這裏: http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

或者在這裏: http://www.9lessons.info/2009/03/upload-and-resize-image-with-php.html

0

檢查的最大尺寸,然後調整圖的基礎上的比率。下面是一個僞代碼示例:

if($imageHeight > $maxHeight) { 
    $newHeight = $maxHeight; 
    $newWidth = $imageWidth * ($maxHeight/$imageHeight); 
} 
if($imageWidth > $maxWidth) { 
    $newWidth = $maxWidth; 
    $newHeight = $imageHeight * ($maxWidth/$imageWidth); 
} 
resize($image, $newWidth, $newHeight); 

它首先檢查高度,如果高度更大,它擴展了下去。然後它檢查寬度。如果寬度太大,則會再次縮小。最終的結果,高度和寬度都會在你的範圍內。它使用比例來進行縮放。

請注意,這是僞科學。實際調整大小函數調用將取決於您的圖像操作庫 - 調用相同的圖像大小。

1

嘗試用這種

 $needheight = 1000; 
     $needwidth = 1000; 

     $arrtest = getimagesize($upload_image_physical_path); 

     $actualwidth = $arrtest[0]; 
     $actualheight = $arrtest[1]; 

     if($needwidth > $actualwidth || $needheight > $actualheight){ 
      //uplaod code 
     } 

歡呼

相關問題