1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| #########################################################
# FONCTION NAME : thumbnail
# FONCTION PARAMS : string $src, string $dest,
# int $largeur
# FONCTION DESCRIPTION : Génère des thumbs carrées en
# fonction du plus grand côté de l'image. Prend en
# argument la source, la destination et la largeur
# maximale.
#########################################################
function thumbnail($src, $dest='', $largeur) {
ini_set('memory_limit','16M');
if(!$dest)
$dest = $src;
$infos_image=getimagesize($src);
$src_x = $infos_image[0]; // largeur de l'image
$src_y = $infos_image[1]; // hauteur de l'image
$im_src=@imagecreatefromjpeg($src);
if(!$im_src)
$im_src=@imagecreatefrompng($src);
if(!$im_src)
$im_src=@imagecreatefromgif($src);
if ($im_src=='')
return array_push($_SESSION['warning'], WRONG_FILE_TYPE);
//on determine un carré avec la plus petite largeur
if($src_x >= $src_y){
$dim=$src_y;
$verticale='1';
}elseif($src_x <= $src_y){
$dim=$src_x;
$horizontale='1';
}else
$dim=$src_x;
//on determine le point de depart x,y
if($verticale == '1'){
$point_x_ref=($src_x/2)-($dim/2);
$point_y_ref='0';
}
if($horizontale == '1'){
$point_x_ref='0';
$point_y_ref=($src_y/2)-($dim/2);
}
$im_dest=imagecreatetruecolor($largeur, $largeur);
imagecopyresampled($im_dest, $im_src, 0, 0, $point_x_ref, $point_y_ref, $largeur, $largeur, $dim, $dim);
imagedestroy($im_src);
imagejpeg($im_dest, $dest, 90);
imagedestroy($im_dest);
} |
Partager