web 2.0

Seebz.net

imagethumb() : générer facilement des miniatures avec PHP

PHP, via sa libraire GD, offre la possibilité de générer et traiter des images.
Toutefois, la manipulation des images avec GD n'est pas toujours chose facile. En effet, il existe une fonction pour chaque opération et, dans certains cas, des variantes d'une même fonction selon le type de l'image manipulée.

Ainsi, un traitement tel que la création d'une miniature d'une image peut facilement devenir lourd à mettre en place. C'est en partant de ce constat que j'ai écris la fonction imagethumb().

imagethumb()

Cette fonction a été écrite dans le but de faciliter la création de miniature d'une image, elle fonctionne avec les types JPEG, PNG et GIF et gère la transparence.
La miniature générée sera réduite proportionnellement par rapport à l'image originale.

Dans le cas d'une image GIF animée, seul le premier claque sera utilisé pour générer la miniature.

Syntaxe :

bool imagethumb ( string $image_src [, string $image_dest = null [, int $max_size = 100 [, bool $expand = false ]]] )
  1. image_src - Chemin vers l'image source.
  2. image_dest - Le chemin de destination. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.
    Pour éviter de fournir cet argument afin de fournir l'argument max_size, utilisez une valeur NULL.
  3. max_size - La taille maximale (largeur ou hauteur) de l'image de destination. Ce paramètre optionnel a pour valeur par défaut 100.
  4. expand - Si ce paramètre vaut TRUE, imagethumb() pourra éventuellement agrandir l'image pour atteindre la taille max_size dans le cas ou la taille de image_src est plus petite que max_size

Exemples d'utilisation :

Envoie une miniature de "image.jpg" au navigateur

$image_src = 'image.jpg';
imagethumb($image_src);

Créé une miniature de "image.png" de maximum 90 pixels et l'enregistre dans le fichier "thumb.png"

$image_src  = 'image.png';
$image_dest = 'thumb.png';
imagethumb($image_src, $image_dest, 90);

Exemple avec une image fraichement uploadée

if( isset($_FILES['image']) && !$_FILES['image']['error'] && $imagesize=getimagesize($_FILES['image']['tmp_name']) )
{
	$extension = str_replace(array('image/','jpeg'), array('', 'jpg'), $imagesize['mime']);
	
	$filename = time() .'.'. $extension;
	$image_path = 'images/' .$filename;
	$thumb_path = 'images/thumb_'. $filename;
	
	move_uploaded_file($_FILES['image']['tmp_name'], $image_path);
	imagethumb($image_path, $thumb_path, 120);
}

Source et documentation :

La fonction imagethumb() ainsi que sa documentation sont consultables ici.

Partager : Share
 

7 Réponses à “imagethumb() : générer facilement des miniatures avec PHP”

  1. Salut,

    Ta fonction m'est bien utile ! Je suis justement en train de me faire une galerie pour mettre des photos et gérer les miniatures c'est pas vraiment mon truc. Ta fonction marche à merveille, merci !

    Par contre lorsque tu créer ta fonction tu met maxsize = 100. A quoi cela sert-il alors que lorsqu'on appelle la fonction on donne aussi la taille maximale ?

  2. Ce code est cool
    très léger et facile à mettre en oeuvre
    bravo

  3. Salut,

    Merci beaucoup pour ta fonction ! Super simple à utiliser, et très efficace !

    Bonne continuation

  4. Merveilleuse méthode! Merci infiniment!

  5. on peut pas donne la taille de l'image finale

  6. Merci! Chouette travail!

  7. Bonjour, excusez mon ignorance, je m'acharne à comprendre cette fonction, mais je n'arrive pas à l'utiliser : comment afficher la miniature ? Puis-je avoir un exemple ?

    Jusqu'à présent, je bute sur un "Warning : header already send". Dois-je juste faire un echo de la fonction, ou en tant que source d'un image... Bref, je suis paumé.

    Merci d'avance du coup de main :)

Poster un commentaire

Remonter