调整大小时GD应该需要这么多内存吗?

时间:2010-09-10 11:56:38

标签: php

我有一个用PHP制作的调整大小脚本,它使用GD(我的VPS没有安装imagemagick)来调整图像大小,我最近开始出现内存错误,所以我已经将memory_limit增加到50Mb并仍然获得内存错误。

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

2 个答案:

答案 0 :(得分:6)

要调整图像大小,GD必须处理未压缩的图像,这个图像明显大于2MB,我假设。 Imagemagick需要存储整个图像数据(像素* bit_depth),还需要存储内存中的实际工作。

50兆字节不适用于处理图像。例如,如果您的内存限制小于96MB,如果您启用了图像大小调整等,Drupal会发出警告。对于尺寸合理的图像,根据我的经验,64MB就足够了,但如果你从数码相机中放入全尺寸图像,你就会遇到内存限制的问题。

答案 1 :(得分:0)

在我的共享/云托管上(2.7英镑/月)我在调整图像大小时仍然没有看到任何警告/错误。我将限制设置为200MB(有时用户需要上传非常大的图像)。正如法比安所说,我认为50太低了。