Как изменить размер всех изображений в блоке HTML до определенной ширины и кэшировать результаты

Я пишу плагин адаптации мобильного контента для заказной CMS на PHP. CMS содержит <img/> ссылки на изображения с абсолютными URL-адресами, которые имеют ширину 400 пикселей и различаются по высоте.

Я хотел бы проанализировать HTML (который хранится в MySQL) и масштабировать каждое изображение до новой ширины - это зависит от устройства. Я также хотел бы кэшировать изображения, чтобы предотвратить ненужное изменение их размера на лету каждый раз, когда загружается страница.

Как мне лучше всего добиться этого на PHP, используя ImageMagick или GD?


person Community    schedule 20.10.2008    source источник


Ответы (2)


как насчет того, чтобы сделать что-то немного другое. в основном разгружают кэширование/изменение размера модели по запросу. скажем, ваше приложение запускается на устройстве A, для которого требуются изображения 200x200. вы бы изменили ссылки на изображения на:

<img src="/images/image.php?height=200&width=200&source=filename.jpg" />

image.php может быть скриптом, который делает следующее:

  • убедитесь, что существующий файл существует, и возьмите его из кеша, если он существует в этом размере
  • если нет, измените размер изображения и кэшируйте его

в следующий раз, когда ваше приложение будет искать это изображение, оно будет отправлено обратно с размером 200 пикселей. в качестве альтернативы, если приложение сейчас ищет изображение размером 300x300, оно будет создано/кэшировано по новому запросу.

person Owen    schedule 20.10.2008

ПОСМОТРЕТЬ Лучший способ кэширования изображений с измененным размером с помощью PHP и MySQL
за действительно хорошие идеи по механизму кэширования (особенно за концепцию вмешательства веб-сервера apache)

а также

http://phpthumb.sourceforge.net/, который инкапсулирует использование как ImageMagick, так и GD.

person micahwittman    schedule 20.10.2008