我正在尝试使用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的内存限制下