В моей ситуации, с учетом конечно определенной кривости, но памяти на картинку примерно 5000*5000 не хватало. Скрипту выделялось 500мб.
Отметил решением ответ, который, учел, что всегда в переменной не только сами пиксели и коефициент еще в х2.5.
Спасибо всем за интересные ответы, калькулятор и инфу о втроенной функции для вывода используемой памяти скриптом - не знал.
В идеале это высота * ширина * количество_бит_на_пиксель
Для 32-битного цвета будет
5000 * 5000 * 32 = 800 млн бит, это чуть меньше 800 МБ.
На практике, при обработке потребуется примерно раза в 2.5 больше (эмпирический коэфициент, который вполне может зависеть от окружения и параметров сборки).
По своему опыту могу сказать, что вам не хватит памяти. Я не знаю, что там делает GD, но на большие изображения оно выжирает сумасшедшее кол-во памяти. Изображения более 2к на сторону уже становятся проблемой. Используйте ImageMagick.
Stalker_RED, Да, если сделать белое полотно 5000x5000 и поставить черный пиксель в центре, то еще меньше будет. Но это 1 на 1000000 случаев. Поэтому я и написал "не линейно". Как это связано с кривостью работы GD?
Максим Тимофеев, Это не кривость работы. Изображение в "сыром" виде столько и должно занимать.
ImageMagic конечно крутая штука, но я пару раз встречал ситуации, когда GD работал раз в 30 быстрее. Например, при нарезке большого изображения на тайлы для leafleet.
И в ряде случаев выгоднее выделить больше памяти, чем ждать результат обработки.