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
|
//Creation d'une miniature d'une photo
//$nom -> Nom du fichier sur le disque dur
//$nom_t -> nom du fichier thumb a creer
//$imagethumbsize -> taille du thumb
//$c -> Compression
//ATTENTION, seulement le format JPeg et PNG est supporté.
function genthumb($path,$nom,$nom_t,$imagethumbsize,$c=75)
{
list($width, $height) = getimagesize($path.$nom);
//Le thumb ne peut pas dépasser les $imagethumbsize * $imagethumbsize
if ($width>$height)
{
$th_h=(int)($height*$imagethumbsize)/$width;
$th_w=$imagethumbsize;
}
else
{
$th_w=(int)($width*$imagethumbsize)/$height;
$th_h=$imagethumbsize;
}
// résérvation d'espace mémoire de la taille du thumb
$image_t = imagecreatetruecolor($th_w , $th_h); // true color for best quality
if(exif_imagetype($path.$nom)==IMAGETYPE_JPEG) // C'est une Jpeg
{
$image = imagecreatefromjpeg($path.$nom);
}
else // C'est une PNG
{
$image = imagecreatefrompng($path.$nom);
$nom=basename($nom,".png").'.jpg'; // Le Thumb sera de toute façon un JPG
}
// on retaille l'image
imagecopyresampled($image_t, $image,0,0,0,0,$th_w,$th_h,$width,$height);
//Sauvegarde de l'image dans un fichier, avec la compression $c
imagejpeg($image_t, $path.$nom_t, $c);
//Libére la ram
imagedestroy($image);
imagedestroy($image_t);
} |
Partager