通过使用图像干预在laravel中调整图像大小时,内存限制超出限制

问题描述

我为所有现有的产品图片实施了图片调整大小方法,但会给出这样的错误消息

production.ERROR:耗尽了134217728字节的允许的内存大小(试图分配86736576字节){“ exception”:“ [对象](Symfony \ Component \ Debug \ Exception \ FatalErrorException(code:1):允许的内存大小为在/home/httpd/htdocs/qa/ebeyonds_oos/api/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.PHP:236)上已用完134217728字节(尝试分配86736576字节)

存在从aws s3存储桶读取的已保存图像,并读取该内容在图像大小调整过程中使用。

foreach($ productimages as $ productimage){

$imgArray = $productimage->images;
foreach ($imgArray as $img) {
    $filePathDetails = pathinfo($img->saved_name);
    log::info($img->saved_name);

    $fileName = $filePathDetails['basename'];

    if (isset($filePathDetails['extension'])) {
        $extension = ($filePathDetails['extension']);
    } else {
        $extension = $img->ext;
    }


    $fileNameFullPath = $ImageJob['client_id'] . $product_folder . '/' . $fileName;
    $imageExist = $disk->exists($fileNameFullPath);

    $imageExtensions = ['jpg','jpeg','png'];
    if ($imageExist) {
        if (in_array($extension,$imageExtensions)) {
            $OriginalImageContent = $disk->get($fileNameFullPath);
            if ($OriginalImageContent) {
                $im = imagecreatefromstring($OriginalImageContent);
                $originalWidth = imagesx($im) ?? null;
                $originalHeight = imagesy($im) ?? null;

                $listingImagePath = $ImageJob['client_id'] . $listingFolder . '/' . $fileName;
                $thumbImagePath = $ImageJob['client_id'] . $thumbnail_folder . '/' . $fileName; 
      
                if ($isSmallResize == 1) {
                    $this->imageResize($originalWidth,$originalHeight,$defaultSmallWidth,$defaultSmallHeight,$OriginalImageContent,$listingImagePath,$extension,$disk);
                }
                if ($isThumbResize == 1) {
                    $this->imageResize($originalWidth,$defaultThumbWidth,$defaultThumbheight,$thumbImagePath,$disk);
                }
                Log::info("ProdcutHandler requestToResizeImage:: File Found");
            }
        } else {
            Log::info("ProdcutHandler requestToResizeImage:: invalid Extension");
        }
    } else {
        Log::info("ProdcutHandler requestToResizeImage:: File Not Found");
    }

有使用图像插入的图像调整大小方法

请帮助解决此问题。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)