2016-11-14 156 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

相关问题