内存不足的图像干预 - laravel
image intervention out of memory - laravel
内存问题:干预图像处理
我正在为 laravel 使用干预图像 class 并将图像复制、调整大小和编码到站点目录。本质上是模拟上传到虚假列表。
不过,当 运行 数据库种子时,我似乎 运行 遇到了内存问题。
错误信息:
local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException'
with message 'Allowed memory size of 134217728 bytes exhausted (tried to allocate 5056 bytes)'
in C:\xampp\htdocs\equezone\vendor\intervention\image\src\Intervention\Image\Gd\Decoder.php:115
每张图片不超过 1265x625。图像仅在大于 1300x700 时才调整大小。因此,实际上没有调整图像大小...
Gd\Decoder 的第 115 行。php
$canvas = imagecreatetruecolor($width, $height);
imagecreatetruecolor
似乎为 php 扩展了 gd class。
这是我的代码的基础:
$image = Image::make(( ! is_string($file))? $file->getRealPath(): $file);
if ($image->width() > self::MAX_IMAGE_WIDTH || $image->height() > self::MAX_IMAGE_HEIGHT) {
self::resizeImage($image, self::MAX_IMAGE_WIDTH, self::MAX_IMAGE_HEIGHT);
}
/*
Some code here to retrieve the listing from the database,
create an image in the database
assign image to the listing
*/
$image->encode('jpg',100);
$image->save($img->getImageLocation(), 100);
我找出内存泄漏的来源。
在内存崩溃之前,种子将播种大约 8 - 14 个列表。上传大约 60 - 70 张图片。然后内存不足。列表是随机生成的,图像是随机分配给列表的...
这完全让我难住了。如果您想了解有关该信息的更多详细信息,请告诉我。
尝试使用 destroy
释放实例分配的内存:
$image->encode('jpg',100);
$image->save($img->getImageLocation(), 100);
$image->destroy();
内存问题:干预图像处理
我正在为 laravel 使用干预图像 class 并将图像复制、调整大小和编码到站点目录。本质上是模拟上传到虚假列表。
不过,当 运行 数据库种子时,我似乎 运行 遇到了内存问题。
错误信息:
local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException'
with message 'Allowed memory size of 134217728 bytes exhausted (tried to allocate 5056 bytes)'
in C:\xampp\htdocs\equezone\vendor\intervention\image\src\Intervention\Image\Gd\Decoder.php:115
每张图片不超过 1265x625。图像仅在大于 1300x700 时才调整大小。因此,实际上没有调整图像大小...
Gd\Decoder 的第 115 行。php
$canvas = imagecreatetruecolor($width, $height);
imagecreatetruecolor
似乎为 php 扩展了 gd class。
这是我的代码的基础:
$image = Image::make(( ! is_string($file))? $file->getRealPath(): $file);
if ($image->width() > self::MAX_IMAGE_WIDTH || $image->height() > self::MAX_IMAGE_HEIGHT) {
self::resizeImage($image, self::MAX_IMAGE_WIDTH, self::MAX_IMAGE_HEIGHT);
}
/*
Some code here to retrieve the listing from the database,
create an image in the database
assign image to the listing
*/
$image->encode('jpg',100);
$image->save($img->getImageLocation(), 100);
我找出内存泄漏的来源。
在内存崩溃之前,种子将播种大约 8 - 14 个列表。上传大约 60 - 70 张图片。然后内存不足。列表是随机生成的,图像是随机分配给列表的...
这完全让我难住了。如果您想了解有关该信息的更多详细信息,请告诉我。
尝试使用 destroy
释放实例分配的内存:
$image->encode('jpg',100);
$image->save($img->getImageLocation(), 100);
$image->destroy();