的图像是小于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 –