我想用類似於Pinterest的方式來操作圖片/調整圖片的大小,但我不確定接近圖片的最佳方式是什麼。目標是允許縱向和橫向圖像的混合,但對最大高度和寬度設置一些限制。如何在上傳時限制圖片的寬度或高度
我可以看到的問題是,如果我調整到寬度,縱向圖像可能會變得太薄,而對於景觀圖像則相反。
有關如何使用PHP實現這些結果的任何想法?
我想用類似於Pinterest的方式來操作圖片/調整圖片的大小,但我不確定接近圖片的最佳方式是什麼。目標是允許縱向和橫向圖像的混合,但對最大高度和寬度設置一些限制。如何在上傳時限制圖片的寬度或高度
我可以看到的問題是,如果我調整到寬度,縱向圖像可能會變得太薄,而對於景觀圖像則相反。
有關如何使用PHP實現這些結果的任何想法?
您只需要瞭解圖像的兩個邊緣中的哪一個更長,並按比例計算其他維度。如果最大長度爲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
檢查的最大尺寸,然後調整圖的基礎上的比率。下面是一個僞代碼示例:
if($imageHeight > $maxHeight) {
$newHeight = $maxHeight;
$newWidth = $imageWidth * ($maxHeight/$imageHeight);
}
if($imageWidth > $maxWidth) {
$newWidth = $maxWidth;
$newHeight = $imageHeight * ($maxWidth/$imageWidth);
}
resize($image, $newWidth, $newHeight);
它首先檢查高度,如果高度更大,它擴展了下去。然後它檢查寬度。如果寬度太大,則會再次縮小。最終的結果,高度和寬度都會在你的範圍內。它使用比例來進行縮放。
請注意,這是僞科學。實際調整大小函數調用將取決於您的圖像操作庫 - 調用相同的圖像大小。
嘗試用這種
$needheight = 1000;
$needwidth = 1000;
$arrtest = getimagesize($upload_image_physical_path);
$actualwidth = $arrtest[0];
$actualheight = $arrtest[1];
if($needwidth > $actualwidth || $needheight > $actualheight){
//uplaod code
}
歡呼