我知道有很多关于这个问题的问题。但我仍然不明白原因。 当我添加调整大小功能时显示错误。允许内存大小为134217728字节耗尽(试图分配81920001字节)
Image::make($logo)->resize(200*200)->save(public_path('Uploads/logo/' . $fileName));
否则它工作正常。 为什么一个函数会尝试消耗这么多的内存?
我知道有很多关于这个问题的问题。但我仍然不明白原因。 当我添加调整大小功能时显示错误。允许内存大小为134217728字节耗尽(试图分配81920001字节)
Image::make($logo)->resize(200*200)->save(public_path('Uploads/logo/' . $fileName));
否则它工作正常。 为什么一个函数会尝试消耗这么多的内存?
当你做->resize(200*200)
你没有将图像的大小调整为200像素×200像素时,你将宽度(resize()函数的第一个参数)作为200 200(即40000)传递,这是内存问题。
你需要做的:
Image::make($logo)->resize(200, 200)->save(public_path('Uploads/logo/' . $fileName));
调整大小可以使用大量的内存。也许在这种情况下,原始图像很大。你可以尝试先将它压平成JPG格式,然后调整它的大小。
要增加内存限制您可以在PHP脚本的顶部添加此:
ini_set('memory_limit', '2G');
我有兴趣看到处理图像时使用2G内存的脚本;) – Enstage
也许这不只是单一的功能,但你的脚本的聚集内存消耗高。这个电话只是第一个超出限制。也许试着通过你的代码来查找其他高内存部分。 – Sirko
@Sirko谢谢你的知识.. :) – Azima