Timthumb : générez vos miniatures à la volée

img

Je viens tout juste d’apprendre sur le site binarymoon que la version 2 de TimThumb était disponible sur les serveurs de google. Des corrections de bugs importantes et quelques nouveautés!

Timthumb, un nom plutôt cool en apparence, mais c’est un script php très utile qui a conquis des millions de fans. Peut-être en avez vous déjà entendu parler ? Ce script est surtout connu pour son implémentation dans les thèmes WordPress (pouvoir générer autant de miniatures que de dimensions souhaitées), mais il peut très bien être intégré à un site quelconque qui utilise du langage php.

oui oui mais que fait-il ?

Comme décrit dans la petite vignette ci-dessus (il faut avoir l’oeil!), il permet de générer des miniatures à la volée d’une quelconque image, à partir d’une requête http, et il enregistre le tout dans un répertoire nommé cache, ce qui lui évitera de refaire appel une nouvelle fois à son script si une miniature de mêmes dimensions et de mêmes caractéristiques a déjà été générée!

<!-- Un exemple d'url qui va générer une miniature de l'image1.jpg de résolution 100x200(px) et de très bonne qualité  -->

http://www.toto.com/timthumb.php?src=http://www.toto.com/images/image1.jpg&h=200&w=100&q=100

La requête ci-dessus va récupérer 4 paramètres (GET) :

  • src : le paramètre le plus important : c’est celui qui définit l’url de l’image. Les images peuvent être soit en interne (images propres à son site), soit en externe (images provenant d’autres sites).
  • h : définit la hauteur (height) de la miniature (en pixel).
  • w : définit la largeur (width) de la miniature (en pixel).
  • q: définit le taux de compression de la future miniature (quality). Si il est a 100, cela signifie qu’aucune compression ne sera effectuée à la miniature.

Petite note : ce script utilise du curl pour réafficher l’image une fois qu’elle a été créée. Un article en parle sur Pimeo!

J’hésitais à créer toute une page de démonstrations, mais je ne pouvais pas égaler les exemples de son concepteur! Donc je vous affiche les différents liens vers ces exemples ainsi qu’une petite mise en bouche de ce que vous pourrez y trouver!

Démonstration #1 : Quelques exemples basiques
http://www.binarymoon.co.uk/demo/timthumb-basic/

Démonstration #2 : Génération et redimensionnement de miniatures à partir d’images externes.
http://www.binarymoon.co.uk/demo/timthumb-external/

Démonstration #3 : Quelques exemples de filtrages couleur et d’ajout d’ombres
http://www.binarymoon.co.uk/demo/timthumb-filters/

Démonstration #4 : Exemples avancés de recadrage (croppage) de miniatures
http://www.binarymoon.co.uk/demo/timthumb-cropping/

Démonstration #5 : Pour avoir des miniatures parfaites c’est ici!
http://www.binarymoon.co.uk/demo/timthumb-zoom-crop/

Note importante pour les utilisateurs de WordPress et pour les personnes qui utilisent ce script pour leur(s) site(s):

Une version 2 est sortie il y a maintenant quelques jours, suite à un problème de sécurité. Cette nouvelle version, totalement réécrite (en POO), a pour but d’éviter toute injection de fichiers ou de codes frauduleux. Pour celles et ceux qui utilisent ce script, il est nécessaire de le mettre à jour!

Extrait de l’article (en anglais) :

 » TimThumb 2.0 is a total, ground up, rewrite – written with security in mind from the start. There have been a whole heap of improvements to security making this the strongest TimThumb release ever. In addition the code has been remade in an object oriented fashion, and there have been some new features added that will hopefully make the script even more popular than before.
If you hadn’t guessed already this update is a required one. »

Vous pouvez désormais télécharger le script Timthumb à partir de Google Codes.

Images : Images libres de droit trouvées sur sxc.hu

Des fautes de frappe ou d’orthographe? Une critique ? Une suggestion ?
N’hésitez pas à laisser un commentaire!

Commentaires ! (1)

    I learned a lot from this post, great help for me, thank you!

Ajouter un mot?

Votre adresse email ne sera pas publiée.
Les champs obligatoires sont indiqués avec *
  • CATEGORIES