2008-10-20 6 views
0

J'écris un plugin d'adaptation de contenu mobile pour un CMS sur mesure en PHP. Le CMS contient <img/> liens vers des images avec des URL absolues qui ont toutes une largeur de 400 pixels et varient en hauteur. Je voudrais analyser le HTML (qui est stocké dans MySQL) et redimensionner chaque image à une nouvelle largeur - cela va varier en fonction de l'appareil. Je voudrais également mettre en cache les images pour éviter de les redimensionner à la volée à chaque fois que la page est chargéeComment redimensionner toutes les images dans un bloc de HTML à une largeur spécifique et mettre en cache les résultats

Quelle est la meilleure façon d'y parvenir en PHP avec ImageMagick ou GD? Qu'en est-il de faire quelque chose d'un peu différent?

Répondre

2

essentiellement hors charge la mise en cache/redimensionnement à un modèle à la demande. disons que votre application est en cours d'exécution sur le périphérique A, qui nécessite 200x200 images. vous souhaitez modifier les liens d'image à:

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

image.php pourrait être un script qui effectue les opérations suivantes:

  • assurez-vous que le fichier existe déjà, et la saisir à partir du cache si elle existe cette taille
  • sinon, redimensionner l'image et le mettre en cache

la prochaine fois que votre application cherche cette image, il serait renvoyé à la taille 200px. alternativement, si l'application recherche maintenant une image 300x300, cela sera construit/mis en cache sur la nouvelle requête.

Questions connexes