Я использую пакет Symfony2 от GregWar для изменения размера до 12 изображений за один раз от загрузки пользователя. Я использую этот https://github.com/Gregwar/ImageBundle
Я изменяю их до четырех разных размеров, так как эти размеры необходимы для мобильных, настольных компьютеров, миниатюр и т.д. Для каждого из них требуется время, но при изменении размера 12 x 4 это может занять некоторое время. Свыше 30 секунд. Это отстает от тайм-аута PHP по умолчанию и на самом деле не подходит для времени ожидания конечного пользователя.
Я хочу, чтобы изменение размера выполнялось при загрузке, поэтому новые размеры доступны пользователю. Вместо того, чтобы позже выполнять пакетный процесс.
Кажется, это может быть общей проблемой. Итак, что я могу сделать, чтобы улучшить ситуацию?
Должен ли я использовать другую библиотеку?
Или уменьшить размеры моего изображения с четырех до двух, чтобы улучшить скорость обработки, но принести жертву пользователям?
Это нормально? Это может быть проблема с оборудованием? На моей локальной машине это еще медленнее.
Память PHP установлена на 256 МБ. Я использую ServerGrove VPS, с PHP5.3.
Я отошел от попытки решить это на своем сервере и вместо этого теперь использую специальный экземпляр EC2 с Amazon для изменения размеров изображений.
Подобно этому подходу http://sumitbirla.com/2011/11/how-to-build-a-scalable-caching-resizing-image-server/
Если на вашем сервере установлено расширение GD, вы можете использовать функцию imagecopyresized
.