加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在不超出内存限制的情况下调整php中??的多个图像

发布时间:2020-12-13 17:17:38 所属栏目:PHP教程 来源:网络整理
导读:我目前正在尝试获取一个表单,允许使用 PHP在服务器上上传和调整大小的图像.客户端上传的每张图片大小约为2.5mb. 我目前正在使用move_uploaded_file()函数. 将文件移动到服务器上没有问题.当我尝试裁剪时出现问题.在我的主机上没有ImageMagick我正在使用这个
我目前正在尝试获取一个表单,允许使用 PHP在服务器上上传和调整大小的图像.客户端上传的每张图片大小约为2.5mb.

我目前正在使用move_uploaded_file()函数.

将文件移动到服务器上没有问题.当我尝试裁剪时出现问题.在我的主机上没有ImageMagick我正在使用这个设置(不是所有的代码只是相关的,这是一个循环与$宽度等改变不同的裁剪尺寸)

$image_p = imagecreatetruecolor($width,$height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p,$image,$width,$height,$width_orig,$height_orig);
imagejpeg($image_p,$output_filename,80);

目前,这只适用于2张图片.如果提交了3个或更多,我会收到“内存耗尽”错误.我研究了这个,因为我的内存限制是120mb.显然,imagecreatefromjpeg函数使用了大量内存,特别是如果文件具有较大的分辨率(我的确如此 – 因此我需要裁剪/调整大小).

有谁知道更有效的方法来完成这项任务?我在google上进行过研究,但每个人都使用相同的技术.

解决方法

使用 imagedestroy清除与$image和$image_p关联的所有内存:

$image_p = imagecreatetruecolor($width,80);
imagedestroy($image);
imagedestroy($image_p);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读