2017-05-30 174 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

相關問題