Как выбрать оптимальные параметры policy.xml для ImageMagick?
В php приложении с помощью Imagick создаются изображения, на которые наносится много примитивов - линии, прямоугольники, круги и пр. Иногда размер изображений довольно большой, и тут возникает 2 проблемы:
1) при вызове метода newImage() иногда выкидывается ошибка 'Unable to create new image at ...'
2) на большом холсте даже простые операции, вроде прорисовки линии, выполняется довольно долго
Причину первой проблемы понял - не хватает ресурсов, которые прописываются в файле policy.xml для ImageMagick. Отсюда первый вопрос: как расчитать параметры policy.xml, зная максимально возможный размер изображения?
И второй вопрос: что можно подкрутить в настройках Imagick, чтобы ускорить прорисовку больших изображений?
Вадим, при таких разрешениях и 32 не хватит. 3кна3к около 3 гиг обычно, попробуйте для теста уменьшить в два раза. 5 на 6
Поставьте лимит памяти в -1 и чекните топ
Дмитрий, а как получается 3Гб, если 3к*3к? Я считал так: 10к * 12к * 4 (канала) * 8 = 3.5 Гб на растровое изображение. Вероятно, еще какая-то доп. информация, но с общим объемом, думаю, это будет мелочь
Не знаю насчёт библиотек, но когда не справляется cli ImageMagick, я обычно беру его форк GraphicMagick и он справляется. Чаще с этим сталкивался когда попадались какие-то странные вариации форматов входных файлов, но вроде с чем-то особенным большим мне тоже как-то помогло.