imagecopyresample()期望参数2为资源,null给定


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

我正在尝试使用php调整图像的大小。我一直得到这个错误,当我调整我的图像大于500像素,不知道为什么。

错误如下:

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像素的宽度?

谢谢。

$this->image为null…您的脚本在创建目标映像时失败了,可能是没有足够的内存来存储这么大的映像吗?

如果是测试,请在执行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的内存限制下