2017-05-30 178 views
2

我知道有很多关于这个问题的问题。但我仍然不明白原因。 当我添加调整大小功能时显示错误。允许内存大小为134217728字节耗尽(试图分配81920001字节)

Image::make($logo)->resize(200*200)->save(public_path('Uploads/logo/' . $fileName)); 

否则它工作正常。 为什么一个函数会尝试消耗这么多的内存?

+0

也许这不只是单一的功能,但你的脚本的聚集内存消耗高。这个电话只是第一个超出限制。也许试着通过你的代码来查找其他高内存部分。 – Sirko

+0

@Sirko谢谢你的知识.. :) – Azima

回答

5

当你做->resize(200*200)你没有将图像的大小调整为200像素×200像素时,你将宽度(resize()函数的第一个参数)作为200 200(即40000)传递,这是内存问题。

你需要做的:

Image::make($logo)->resize(200, 200)->save(public_path('Uploads/logo/' . $fileName)); 
0

调整大小可以使用大量的内存。也许在这种情况下,原始图像很大。你可以尝试先将它压平成JPG格式,然后调整它的大小。

增加内存限制您可以在PHP脚本的顶部添加此:

ini_set('memory_limit', '2G'); 
+0

我有兴趣看到处理图像时使用2G内存的脚本;) – Enstage

相关问题