2010-09-10 67 views
5

我有一个调整大小的脚本,我在PHP中使用GD(我的VPS没有安装imagemagick)来调整图像大小,我最近开始获取内存错误,所以我增加了memory_limit高达50Mb,仍然出现内存错误。GD在调整大小时是否需要这么多内存?

我想调整大小的图像只有2Mb,这是正确的PHP图像的东西,这听起来有点不对我。

+1

显示代码.. – hsz 2010-09-10 11:58:24

+4

图像大小对压缩格式没有意义。告诉我们图像的*尺寸*。 – 2010-09-10 11:59:20

+1

一个VPS通常代表“你可以安装你需要的一切”。 – 2010-09-10 12:00:27

回答

6

要调整图像大小GD必须在未压缩的图像,这是显着大于2MB,我假设。 Imagemagick需要存储整个图像数据(pixels * bit_depth),而且还需要存储更多内存中的实际内容。

50兆字节对于处理图像并不是很多。例如,Drupal警告你,如果你的内存限制小于96MB,如果你有图像大小调整等等。启用。对于尺寸合理的图像来说,64MB足够满足我的体验,但是如果您从数码相机中放入全尺寸图像,则会遇到内存限制问题。

+1

你的意思是'pixels * bit_depth/8' :-) – TMS 2012-04-17 20:51:35

0

在我的共享/云主机上(2.7英镑/月),在调整图像大小时仍然没有看到任何警告/错误。我将限制设置为200MB(有时用户需要上传非常大的图像)。正如费边说的那样,我猜50是太低了。

相关问题