致命错误:调整图像大小时允许的内存大小耗尽

时间:2017-08-16 22:21:13

标签: php image rotation

我正在尝试上传图片(没问题),必要时旋转图片(没问题),然后调整大小(问题发生时)。 图像旋转后,使用imagecreatefromjpeg功能时出现以下错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 9288 bytes).

这是我的代码

<?php
$path='uploads/test7.jpg';

$exif = exif_read_data($path);
if (!empty($exif['Orientation'])) 
{
    $imageResource = imagecreatefromjpeg($path);
    switch ($exif['Orientation']) {
        case 3:
        $image = imagerotate($imageResource, 180, 0);
        break;
        case 6:
        $image = imagerotate($imageResource, -90, 0);
        break;
        case 8:
        $image = imagerotate($imageResource, 90, 0);
        break;
        default:
        $image = $imageResource;
    }
}

imagejpeg($image, $path,100);

$newImage= imagecreatefromjpeg($path); //this line generates an error
?>

2 个答案:

答案 0 :(得分:0)

您已经提到了错误:

  

致命错误:允许的内存大小为134217728字节(尝试分配9288字节)。

这意味着您的内存限制太低。尝试使用ini_set('memory_limit, '256M')自行增加,请求您的管理员增加限制或升级您的托管包。

您可以在PHP manual - Resource limits中了解更多信息。

答案 1 :(得分:0)

非常感谢你的帮助,对不起的回复感到抱歉。 我终于在创建新图像之前使用imagedestroy解决了我的问题。