[英]PHP resize image before uploading
我正在建立一個網站,管理員可以在其中上傳圖片。 如果圖像大於2MB,它將由於限制而失敗。 但是,即使沒有限制,由於訪問者的加載時間,調整圖像的大小還是更好。
圖片的寬度絕不能超過800像素,高度無關緊要,因為它永遠不會大。 我現在想做的是調整圖像大小,以便寬度等於或小於800px,高度按相同比例調整。
我現在所擁有的是:
if (!empty($_FILES))
{
$upload_dir = 'photos';
$tempFile = $_FILES['file']['tmp_name'];
$targetPath = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . $upload_dir . DIRECTORY_SEPARATOR;
$mainFile = $targetPath . time() . '-' . $_FILES['file']['name'];
list($w, $h) = getimagesize($tempFile);
if ($w > 800)
{
$ratio = 800 / $w;
$newHeight = $ratio * $h;
$tempFile = imagescale($tempFile, 800);
}
move_uploaded_file($tempFile, $mainFile);
}
但這什么也沒做。
我正在將此腳本用作dropzone作為圖像輸入的目標。
有人可以指出我正確的方向嗎? 還是在$_FILES
PHP已經嘗試上傳圖像? 如果是這樣,我不知道如何解決。 然后, 在 dropzone調用此腳本之前 ,應調整其大小。
擁有$ _FILES后,映像已在服務器上。 您可以使用canvas元素在客戶端HTML5中調整其大小。
嘗試閱讀以下內容:
https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/
我建議使用WideImage 。 然后,您可以像這樣使用resize()
:
WideImage::load('big.png')->resize(50, 30)->saveToFile('small.jpg');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.