我知道有很多關於這個問題的問題。但我仍然不明白原因。 當我添加調整大小功能時顯示錯誤。允許內存大小爲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