php - 当laravel使用图像干预调整图像大小时超出内存限制
问题描述
我为所有现有产品图像实现了图像调整大小方法。但它会给出这样的错误消息
production.ERROR:允许的内存大小为 134217728 字节已用尽(尝试分配 86736576 字节){“异常”:“[object](Symfony\Component\Debug\Exception\FatalErrorException(代码:1):允许的内存大小为 134217728 字节用尽(试图分配 86736576 字节)在 /home/httpd/htdocs/qa/ebeyonds_oos/api/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php:236)
存在从 aws s3 存储桶读取的保存图像并读取在图像调整大小过程中使用的内容。
foreach ($productImages 作为 $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, $originalHeight, $defaultThumbWidth, $defaultThumbheight, $OriginalImageContent, $thumbImagePath, $extension, $disk);
}
Log::info("ProdcutHandler requestToResizeImage:: File Found");
}
} else {
Log::info("ProdcutHandler requestToResizeImage:: invalid Extension");
}
} else {
Log::info("ProdcutHandler requestToResizeImage:: File Not Found");
}
有使用图像间隔的图像调整大小方法
请帮助解决这个问题。谢谢
解决方案
推荐阅读
- angular5 - 绑定 html 从 Angular 5 下拉
- python - 使用 BeautifulSoup 和 Requests 从 xml 文件打印数据
- arduino - 在 Arduino Uno 上的 2 个引脚之间传递信息
- php - 通过 HTTP 向 php 文件发送/接收数据(作为服务器)
- python-2.7 - 将带有时区的日期时间对象转换为分钟
- pandas - 为什么使用 pandas 时 cmd 出现语法错误?这段代码有什么问题-
- java - 将两个类相互连接
- javascript - 保存上下文
- javascript - React-dates 如何识别用户选择数据的方式
- javascript - css关键帧动画反转