Имеется проект на Yii2. При попытке обработать большое изображение при помощи модуля \yii\imagine\Image возникает ошибка нехватки памяти.
Конкретный пример.
Загружаю JPG-файл размером 3,94 Мб (размер самого изображения 3024x5386 пикселей). И при попытке обработать открыть это изображение происходит ошибка:
code:1
file:"[ПУТЬ К ПРОЕКТУ]\vendor\imagine\imagine\lib\Imagine\Gd\Image.php"
line:622
message:"Allowed memory size of 268435456 bytes exhausted (tried to allocate 65028097 bytes)"
name: "PHP Fatal Error"
Вот код \vendor\imagine\imagine\lib\Imagine\Gd\Image.php:
...
private function createImage(BoxInterface $size, $operation)
{
$resource = imagecreatetruecolor($size->getWidth(), $size->getHeight());
if (false === $resource) {
throw new RuntimeException('Image '.$operation.' failed');
}
if (false === imagealphablending($resource, false) ||
false === imagesavealpha($resource, true)) {
throw new RuntimeException('Image '.$operation.' failed');
}
if (function_exists('imageantialias')) {
imageantialias($resource, true);
}
$transparent = imagecolorallocatealpha($resource, 255, 255, 255, 127);
imagefill($resource, 0, 0, $transparent); // <---------- СТРОКА 622 В КОТОРОЙ ПРОИСХОДИТ ОШИБКА
imagecolortransparent($resource, $transparent);
return $resource;
}
...
Вот соответствующие параметры из PHP.INI:
...
realpath_cache_size=256M
memory_limit = 256M
...
upload_max_filesize = 5M
post_max_size = 5M
...
Неужели для обработки такого графического файла (характеристики я описывал выше) требуется больше 256 Мб памяти??? Или можно как-то это решить другим путём?