(PHP 4 >= 4.0.6, PHP 5)
Envoie la miniature d'une image vers un navigateur ou un fichier.
imagethumb() génère une copie de l'image image_src aux dimensions maximales max_size et l'envoie vers un navigateur ou le fichier image_dest.
imagethumb() utilise la bibliothèque GD et retournera FALSE si celle-ci n'est pas disponible
imagethumb() fonctionne correctement avec les images de type Jpeg, Png et Gif. Dans le cas d'un Gif animé, seule la première frame sera utilisé.
imagethumb() gère la transparence.
<?php function imagethumb( $image_src , $image_dest = NULL , $max_size = 100, $expand = FALSE, $square = FALSE ) { if( !file_exists($image_src) ) return FALSE; // Récupère les infos de l'image $fileinfo = getimagesize($image_src); if( !$fileinfo ) return FALSE; $width = $fileinfo[0]; $height = $fileinfo[1]; $type_mime = $fileinfo['mime']; $type = str_replace('image/', '', $type_mime); if( !$expand && max($width, $height)<=$max_size && (!$square || ($square && $width==$height) ) ) { // L'image est plus petite que max_size if($image_dest) { return copy($image_src, $image_dest); } else { header('Content-Type: '. $type_mime); return (boolean) readfile($image_src); } } // Calcule les nouvelles dimensions $ratio = $width / $height; if( $square ) { $new_width = $new_height = $max_size; if( $ratio > 1 ) { // Paysage $src_y = 0; $src_x = round( ($width - $height) / 2 ); $src_w = $src_h = $height; } else { // Portrait $src_x = 0; $src_y = round( ($height - $width) / 2 ); $src_w = $src_h = $width; } } else { $src_x = $src_y = 0; $src_w = $width; $src_h = $height; if ( $ratio > 1 ) { // Paysage $new_width = $max_size; $new_height = round( $max_size / $ratio ); } else { // Portrait $new_height = $max_size; $new_width = round( $max_size * $ratio ); } } // Ouvre l'image originale $func = 'imagecreatefrom' . $type; if( !function_exists($func) ) return FALSE; $image_src = $func($image_src); $new_image = imagecreatetruecolor($new_width,$new_height); // Gestion de la transparence pour les png if( $type=='png' ) { imagealphablending($new_image,false); if( function_exists('imagesavealpha') ) imagesavealpha($new_image,true); } // Gestion de la transparence pour les gif elseif( $type=='gif' && imagecolortransparent($image_src)>=0 ) { $transparent_index = imagecolortransparent($image_src); $transparent_color = imagecolorsforindex($image_src, $transparent_index); $transparent_index = imagecolorallocate($new_image, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']); imagefill($new_image, 0, 0, $transparent_index); imagecolortransparent($new_image, $transparent_index); } // Redimensionnement de l'image imagecopyresampled( $new_image, $image_src, 0, 0, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h ); // Enregistrement de l'image $func = 'image'. $type; if($image_dest) { $func($new_image, $image_dest); } else { header('Content-Type: '. $type_mime); $func($new_image); } // Libération de la mémoire imagedestroy($new_image); return TRUE; } ?>
bool imagethumb ( string $image_src [, string $image_dest = null [, int $max_size = 100 [, bool $expand = false [, bool $square = false ]]]] )
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
Exemple #1 Exemple avec imagethumb()
<?php $image_src = 'image.jpg'; imagethumb($image_src); // Envoie une miniature de "image.jpg" au navigateur ?>
Exemple #2 Exemple avec imagethumb()
<?php $image_src = 'image.png'; $image_dest = 'thumb.png'; imagethumb($image_src, $image_dest, 90); // Créé une miniature de "image.png" de maximum 90 pixels et l'enregistre dans le fichier "thumb.png" ?>
Exemple #3 Exemple avec imagethumb()
<?php // 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); } ?>
Commentaire(s)
Poster un commentaire