2016-11-14 70 views
1

我試圖調整圖像使用PHP。當我調整圖像大小超過500像素時,我不斷收到此錯誤,不知道爲什麼。imagecopyresampled()期望參數2是資源,null給出

這裏的錯誤:

imagecopyresampled() expects parameter 2 to be resource, null given 

這裏是我的代碼無法正常工作:

$resize = new ResizeImage($targetFile); 
     $resize->resizeTo(1800, 1800); 
     $resize->saveImage($xxlFile, 100); 

這裏是我的代碼,做工作:

$resize = new ResizeImage($targetFile); 
     $resize->resizeTo(500, 500); 
     $resize->saveImage($xxlFile, 100); 

我的劇本是打破在這裏:

$this->newImage = imagecreatetruecolor($this->resizeWidth, $this->resizeHeight); 
imagecopyresampled($this->newImage, $this->image, 0, 0, 0, 0, $this->resizeWidth, $this->resizeHeight, $this->origWidth, $this->origHeight); 

我的圖像是5616×3744.爲什麼不能調整1800像素寬?

謝謝。

回答

0

$this->image爲空......您的腳本在創建目標圖像時失敗,它可能沒有足夠的內存允許這麼大的圖片嗎?

對於測試,在運行之前執行此命令ResizeImage()ini_set("memory_limit", "1024M");。此外,請記住加載5616×3744px圖像需要63mb內存(24bit/3byte圖像),並將其大小調整爲1800,1800px(24bit/3byte)圖像將需要額外的10mb內存(通常PHP是設置爲64mb或32mb的內存)。

祝你好運!

[編輯] 所以你500x500x3圖像需要的內存750KB,你的大圖片將內存63 078 KB,共同對63 828 KB西港島線的土地,只是下的64MB內存限制:)

+0

你是最棒的。這就是它的內存問題。感謝解決方案。 – LargeTuna

相關問題