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.

comments powered by Disqus