Не просто ответ Zend Framework, но в последнее время я обнаружил, что изменяю как сумасшедший, как показано ниже.
Я устанавливаю phpThumb где-нибудь в папке, доступной через Интернет, скажем:
http://example.com/img/t/phpThumb.php
Я обязательно настроил phpThumb для использования папки кэша:
/path/to/myapp/public/img/t/cache
который я chmod
должен быть доступен для записи на веб-сервере.
Затем у меня есть помощник вида phpThumb, который позволяет мне вызывать исходное изображение с некоторыми параметрами изменения размера:
<img src="<?php $view->phpThumb($origImgUrl, $desiredWidth, $desiredHeight) ?>">
Все, что действительно делает помощник вида, это преобразовывает src url в тот, который проходит через мою установку phpThumb, обязательно добавляя классный (!) Параметр zoom-center:
<img src="/img/t/phpThumb.php?src=origUrl&w=200&h=150&zc=1">
Первый вызов этого изображения с этими параметрами изменения размера приводит к полному GD / ImageMagick-управляемому изменению размера с полным падением производительности. Но последующие вызовы этого изображения будут извлекаться из кэша. Не так хорошо, как запрос на действительно статичное изображение, но обычно приемлемо для моих целей относительно небольшого объема.
Это особенно полезно во время проектирования / разработки, когда я не уверен точно, насколько большим я хочу, чтобы какой-то внешний вид, приятный глазу, был. Поэтому я могу просто спрятать одну, относительно большую версию моего изображения (скажем, 640x480) в public/img/someBigImage.png
, а затем изменить размер по своему желанию.
Это хак - возможно, лучше выполнить это изменение размера при загрузке, как вы на самом деле просите, - но я должен признать, что использовал его в нескольких местах. Не говори никому. ; -)