的圖像是小於1MB但大小大致是5500x3600。我正試圖將圖片大小調整爲小於500x500。我的代碼非常簡單。PHP - imagecreatefromjpeg使用100M記憶<1M圖像
$image = imagecreatefromjpeg("upload/1.jpg");
$width = imagesx($image);
$height = imagesy($image);
$pWidth = 500;
$pHeight = 334;
$image_p = imagecreatetruecolor($pWidth, $pHeight);
setTransparency($image,$image_p,$ext);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $pWidth, $pHeight, $width, $height);
我發現,處理此圖像中,imagecreatefromjpeg採用100M使用memory_get_usage。
有沒有更好的方式來做到imagecreatefromjpeg?有沒有解決方法或使用較少內存的不同功能?
我沒問我的服務器管理員增加內存,但我懷疑他們將它提高到100M以上。我正在考慮限制圖像的尺寸,用戶可以上傳,但沒有用盡我所有的選擇,因爲用戶很可能會上傳圖片,他們把之前。
順便說一下,以下是我所使用的圖像,它使用的內存100M
什麼在$ _POST ['imageSource']'? –
它是圖像的來源。我將其更改爲upload/1.jpg進行調試。由於該部分不相關,我將刪除它。 – khuderm
使用'5500x3600'時,內存中至少需要5500 * 3600 * 4個字節=〜80MB。對於大圖片Imagick擴展可能會有更好的性能比GD –