我目前正在尝试获取一个表单,该表单允许使用 PHP 在服务器上上传多个图像并调整其大小。客户端上传的每张图片大小约为 2.5mb。
我目前正在使用该move_uploaded_file()
功能。
将文件移动到服务器上没有问题。当我尝试裁剪时,问题就出现了。在我的主机上没有ImageMagick我正在使用这个设置(不是所有的代码都是相关的,这是一个循环,$width
等等。改变不同的裁剪尺寸)
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, $output_filename, 80);
就目前而言,这仅适用于 2 张图像。如果提交了 3 个或更多,我会收到“内存耗尽”错误。我已经对此进行了研究,因为我的内存限制是 120mb。显然,该imagecreatefromjpeg
函数使用了大量内存,特别是如果文件具有较大的分辨率(我的分辨率很高 - 因此我需要裁剪/调整它们的大小)。
有谁知道更有效的方法来完成这项任务?我在谷歌上进行了研究,但每个人都使用与我相同的技术。