允许的内存大小为134217728字节耗尽(试图分配18472字节)

时间:2014-09-25 11:46:56

标签: php memory

我在这一行得到了上述错误:

imagefill($canvas, 0, 0, imagecolorallocate($canvas, 255, 255, 255));

该脚本适用于所有图像类型,但崩溃的图像分辨率大于4000 x 3000像素。图像本身只有500kb。 这是所有代码:

$canvas = imagecreatetruecolor(imagesx($source), imagesy($source));
imagefill($canvas, 0, 0, imagecolorallocate($canvas, 255, 255, 255));
imagealphablending($canvas, TRUE);
imagecopy($canvas, $source, 0, 0, 0, 0, imagesx($source), imagesy($source));
imagedestroy($source);
$quality = 100; // 0 = worst / smaller file, 100 = better / bigger file 
imagejpeg($canvas, $strPath.$p_Id.".jpg", $quality);        //----- save image
ImageDestroy($canvas);

3 个答案:

答案 0 :(得分:5)

无论压缩图像的大小是多少,您的库似乎都需要更多内存。我看到你正在使用128 mb atm,通过使用:

将其增加到256
ini_set('memory_limit','256M');

答案 1 :(得分:1)

我会用PHP覆盖PHP中的默认内存限制:

ini_set('memory_limit', '-1');

答案 2 :(得分:0)

无论压缩图像的大小是多少,您的库似乎都需要更多内存。我看到你使用128 mb atm,将其增加到最多

ini_set('memory_limit', 0);