Comment connaître la dimension d'une image générée dynamiquement ?

Comment connaître la dimension d'une image générée dynamiquement ? - PHP - Programmation

Marsh Posté le 05-04-2005 à 21:48:06    

Quelques explications :
 
Pour redimensionner des images à la volée à une taille convenue, j'appelle un script PHP fait par mes soins, qui ouvre l'image, là redimentionne avec la librairie GD, et renvoie le code de l'image en JPG.
 
L'appel se fait de cette manière :
 

<img src="resize_image.php?img=mon_image.jpg&max150" />


 
Dans cet exemple, je récupère le code d'un JPG qui fera au max 150 px en hauteur ou largeur.
 
Jusqu'alors je n'ai jms eu de prob avec ce script, mais il s'avère que sur un site que je monte tout en CSS, Opera que j'aime (pas) déconne si je ne précise pas explicitement la largeur et la hauteur de mon image.
C'est-à-dire qu'il veut par exemple, ceci :
 

<img height="120" width="150" src="resize_image.php?img=mon_image.jpg&max150" />


 
Le problème, c'est que je calcule ces dimensions dans mon script de redimensionnement et j'ai beau passer en revue un peu toutes les solutions, je ne vois pas comment récupérer ces dimensions.
 
Sachant que ce script est appelé à chaque image, passer par un fichier est délicat (en plus d'être moche), puisqu'il faut l'effacer à la fin du redimentionnement. J'ai essayé, ça semble merder, la balise <img> n'aime pas trop subir une suppression de fichier dans la milli-seconde qui suit...
 
Voilà, j'ai imaginé :
- passage par session (ne marche pas)
- passage par variable globale (ne marche pas)
- passage dans un bloc mémoire (peut-être que ça marche, m'enfin bon...)
- écriture dans un fichier (bof bof)
- ...
 
 
Voilà, si quelqu'un qui a compris le prob aurait une solution originale, je suis preneur !

Reply

Marsh Posté le 05-04-2005 à 21:48:06   

Reply

Marsh Posté le 05-04-2005 à 23:31:40    

Pourquoi demander à ton serveur de faire un resize à chaque visiteur qui passe ? Cela fait de l'utilisation de ressource inutile.  
 
Je te conseille l'utilisation d'un cache.
 
- lors de la préparation d'une page, à chaque imagen tu vérifies si la miniature existe
- Sinon, tu la crées et tu obtiens en sortie de ta fonction le nom et la taille.
- Si oui, il n'y a plus qu'à aller chercher la taille de l'image
- Pour éviter que ton cache ne se remplisse pour rien, tu peux prévoir de l'effacer toutes les semaines par exemple avec un CRON.
 
Je pense que c'est le process le plus propre.

Reply

Marsh Posté le 05-04-2005 à 23:46:11    

ui exact :)
 
C'est plus par feignantise que je l'ai pas fait, vu que le site n'a qu'une 30taine de visiteurs par jour, c'est pas la mort pour l'instant de laisser comme ça. Mais c'est vrai qu'un cache serait plus approprié et résolverait le prob qui plus est.
 
J'ai cependant résolu le prob en attendant. J'avais déjà passé quelques heures dans ma CSS sans trouver d'astuce mais là je viens de mettre le doigt dessus. Ce n'est même pas une astuce, juste un bottom:0px dans un pied de page :|. Mais quand on cherche trop ailleurs des fois, on en perd un peu la raison.
 
Merci de ta réponse en tt cas T509. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed