В конце концов, я думаю, что запрос к базе данных, вероятно, будет быстрее. Получить небольшую строку (скажем, до 2000 символов) из базы данных очень быстро и, вероятно, быстрее, чем когда пользователь постоянно публикует ее, особенно если на странице более 1.
Лучшим вариантом будет создать изображение один раз и кэшировать его, если оно не изменится. Когда изображение запрашивается снова, проверьте, кэшируется ли оно, и просто используйте readfile (), чтобы отправить его в браузер. Мне нравится хранить кэшированное изображение вне корня документа, чтобы оно не было доступно для других, но это может не влиять на то, что вы делаете (и кэширование, и конфиденциальность).
SESSION может быть вариантом, но это лучший вариант, когда вам нужно регенерировать изображение на нескольких страницах с небольшими изменениями, чтобы вам не приходилось каждый раз запрашивать db.