Добрый день, коллеги!
Исходные данные:
Есть докер с веб-приложением внутри на PHP7.3-apache;
Изображение « ORIGINAL » с разрешением 7500x10500px в формате TIFF и размером 149 МБ.
Тестовое изображение « MIDDLE » с разрешением 7600x7600pxв формате TIFF (сжатие LZW) и размером 8,9 МБ.
Тестовое изображение " LARGE " с разрешением 11000x11000 пикселей в формате TIFF (сжатие LZW) и размером 14,9 МБ.
Есть скрипт для обработки изображений:
$img = new Imagick();
$img->readImage(Storage::path($filePath.$fileName));
$img->setImageFormat ('png');
$img->writeImage(public_path($fileName));
$img->destroy();
При запуске скрипта с изображением " MIDDLE " проблем нет, но при использовании [" ORIGINAL"и" LARGE"], файлы
" исчерпаны ресурсы кэша `/ var / www / html / storage / app / upload /image-tiff / 2019-09-39 / LARGE_f2ed11af1f6bbbccccdeb621eb4a843b02.tiff '@ error / cache.c / OpenPixelCache / 4083 "
Начальный rпределы источника:
Imagick :: RESOURCETYPE_MEMORY = 268435456
Imagick :: RESOURCETYPE_MAP = 536870912
Imagick :: RESOURCETYPE_AREA = 12800 * 10500000* Imagick :: RESOURCETYPE_DISK = 1073741824
Если вы установите эти ограничения как минимум на 1 единицу выше, он сбрасывается до исходного значения.
Например:
Imagick::setResourceLimit(Imagick::RESOURCETYPE_MEMORY, 1024435456);
Imagick::setResourceLimit(Imagick::RESOURCETYPE_MAP, 1536870912);
Imagick::setResourceLimit(IMagick::RESOURCETYPE_AREA, 256000000);
Imagick::setResourceLimit(IMagick::RESOURCETYPE_DISK, 4073741824);
Буду благодарен за описание решения моей проблемы.