TimThumb, script php pour la génération de vignettes

TimThumb est un petit script php bien pratique qui permet de retailler à la volée des images.
Cela permet notamment de faire des vignettes (thubnails) assez facilement.
Il supporte les images de type jpeg, gif et png, il fonctionne avec GD Lib et php à partir de la version 4.3.

Concrètement comme fonctionne-t-il?
Tout simplement en lieu et place de l’appel à votre balise image habituelle sur votre site ou dans votre application php
<img src="monimage.jpg" />
remplacez par
<img src="/scripts/timthumb.php?src=monimage.jpg&h=150&w=150&zc=1" />
h pour la hauteur désirée, w pour la largeur désirée et z 1 si vous souhaitez utiliser le zoom, 0 sinon.

TimThumb ira automatiquement lire le fichier image, le retailler aux dimensions voulues et mettre le fichier en cache (afin de ne pas refaire le même traitement à chaque fois) puis afficher votre fichier. Tout cela de façon transparente.

Mais quelle utilité? Car je peux déjà définir moi-même la taille d’affichage de l’image ou faire moi-même les vignettes, voire mon outil de blog (ex: WordPress) propose la génération automatique d’une vignette lors de l’upload de l’image.

– Définir manuellement la taille d’affichage dans le code html ou la feuille de style ne fait que changer la taille d’affichage mais c’est toujours le même fichier de la grosse image avec tout ses kilo-octets qui est affiché -> économie de bande passante avec TimThumb.
– Faire moi-même les vignettes, c’est très bien occasionnellement mais cela devient vite fastidieux dès lors que l’on commence à utiliser beaucoup d’images -> économie de temps grâce à l’automatisation du processus
– WordPress propose automatiquement la génération de vignettes lors de l’upload -> certe mais il faut déjà que cette image soit passée par le processus de WordPress, et puis on vous impose deux tailles de vignettes, et puis il n’y a pas que WordPress dans le monde… -> TimThumb permet à toute image stockée dans votre espace web d’être réduite à la volée automatiquement aux dimensions précises que vous souhaitez, et pour toute application web.

Exemple pratique, j’utilise à la maison le script Andromeda (de l’époque où il était encore gratuit, que j’ai largement modifié pour mes besoins personnels), il affiche une vignette lors du listing des albums et la pochette en grand lorsqu’on est dans la page d’un album.

Un petit remplacement de l’appel à l’image par celui via TimThumb et j’ai mes vignettes créées automatiquement, mises en cache local et surtout qui prennent nettement moins de bande passante.

Pour certains script d’affichage d’images (galleries ou templates wordpress) cela peut être le petit plus qui change la donne.

Site web: TimThumb PHP Script Released – Darren Hoyt
Demo: Live Demo
Code source: svn googlecode

6 thoughts on “TimThumb, script php pour la génération de vignettes”

  1. Farfadette says:

    J’utilise cet utilitaire sur mon blog http://geekeriesdefarfadette.com et je n’arrive pas a mettre sur ma page d’accueil l’image pour  »featured story » et pour chaque apercu d’article ?

    Je ne sais pas comment mettre en place ce que vous dites:s Pourriez vous m’aider ?

    Johanna

  2. tof says:

    Il faut (grosso-modo):
    1. vous assurer que vous avez la librairie GD (GD library) de disponible sur votre serveur web. Un simple fichier php avec la commande
    < ?php phpinfo(); ?>
    permet de le savoir.

    2. créer un dossier de cache accessible en écriture par le script, puis configurer son chemin dans le script Timthub

    3. puis remplacer/adapter l’inclusion d’image dans vos fichier de template WordPress avec l’appel à Timthumb.

  3. tof says:

    Il semblerait en fait que vous utilisiez une template WordPress où Timthumb est déjà intégré (Kubrick on Crack).
    Je pense que les points 2 et 3 décrits ci-dessus sont inutiles car déjà gérés par les scripts de la template. Cependant n’ayant jamais touché à cette template, je ne peux en aucun point être affirmatif.
    Le mieux serait de vous tourner vers l’auteur de la template pour lui demander des infos.

  4. Farfadette says:

    le probleme c’est que si il y est deja par défaut il devrait m’afficher les images d’articles ! Ne m’y connaissant peu en php je ne sais qoi retoucher :s

  5. tof says:

    D’après la page de description de la template (ici), il est mentionné que pour les apperçus: It uses the custom field key: « image » . Donc cela ne requiert aucune connaissance en php, juste à propos de l’utilisation de WordPress.

    Il vous suffit donc, depuis la page de l’éditeur d’articles de WordPress, d’ajouter pour chacun de vos articles un « champ personnalisé » (voir photo) nommé image et dont la valeur est l’adresse url de votre image d’aperçu.
    Le script de la template s’occupera ensuite tout seul de retailler et d’afficher l’image en question…

  6. Top says:

    Attention! Il existe une faille de sécurité connue avec Timthumb.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *