我正在尝试上传和调整 JPG 照片的大小。上传照片后,我会调整其大小,但出现以下错误:
致命错误:允许的内存大小为 67108864 字节已用尽(试图分配 15104 字节)
配置(php.ini
):
memory_limit = 64M
PHP:
ini_set("memory_limit", "64M");
我究竟做错了什么?
我正在尝试上传和调整 JPG 照片的大小。上传照片后,我会调整其大小,但出现以下错误:
致命错误:允许的内存大小为 67108864 字节已用尽(试图分配 15104 字节)
配置(php.ini
):
memory_limit = 64M
PHP:
ini_set("memory_limit", "64M");
我究竟做错了什么?
让我们进行转换:
67 108 864 字节 = 65 536 千字节 = 64 兆字节
67 123 968 字节 = 64 兆字节 + 15 104 字节(过低)
结论:64M
还不够。
使用 GD 调整 jpeg 图像的大小时,文件大小对内存使用的影响通常不如图像尺寸那么大。这是因为 jpeg 具有众所周知的高压缩率和 GD 功能,例如imagecreatefromjpeg
会生成未压缩的图像/像素数据。您可以通过尝试至少以下几件事之一来避免错误:
memory_limit
进一步增加解压后的图像每个像素至少占用 3 个字节,因此如果您的图像非常大,您可能会遇到麻烦。但是,也可能是您的代码有问题。不要忘记在内存中不再需要的任何图像上调用imagedestroy 。