imagecreatefromjpeg +内存不足问题

时间:2010-09-25 14:29:36

标签: php

Hello All我在phpini文件中设置了ini变量。

max_execution_time 50000

memory_limit 40M

post_max_size 8M

当我尝试制作图像缩略图时,它会给我以下错误:

致命错误:内存不足(已分配30670848)(尝试分配14976个字节)

图像尺寸为700 kb。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您的问题不是对imagecreatefromjpeg()的单次调用,而是您先前分配的内存。毕竟,分配失败,内存请求只有~14kB。

也许您之前在同一个脚本中创建了图像而没有使用imagedestroy()释放内存,或者您有另一个内存问题。在后一种情况下,您可以使用调试工具(例如webgrind)来查找内存占用。

答案 1 :(得分:2)

700kb图像的分辨率是多少?原始的.JPG有多大并不重要。如果它是一个非常“简单”的图像,它实际上可能是10,000 x 10,000像素。当它由PHP加载/解压缩时,这些像素将需要10k x 10k x 3 = 286兆字节(每个红色/绿色/蓝色分量值的10x平方乘以3)。

当然,你说你已经将内存限制设置为40M,但你的内存耗尽仅为29.25 meg。可能是设置中某处有覆盖,可能是在特定于站点的Web服务器.conf文件中,或者是.htaccess,它设置的下限超过40M。