/********************************************************/
/* Crea: DNG 2005/12/27 */
/* Descr: Miniaturisation d'images */
/********************************************************/
function thumb($path, $filename, $newsize, $destination) {
//teste le format de l'image et crée l'image concerné
$filepath = $path."/".$filename;
$img_rsage_size = getimagesize($filepath);
switch ($img_rsage_size[2]) {
case 1 :
$source = ImageCreateFromGif($filepath);
$mime_photo='image/gif';
break;
case 2 :
$source = ImageCreateFromJPEG($filepath);
$mime_photo='image/jpeg';
break;
case 3 :
$source = ImageCreateFromPNG($path.$filename);
$mime_photo='image/png';
break;
default:
echo '
Erreur de format d\'image '.$filename.'. Seuls les formats jpeg, gif et png sont supportés';
return false;
}
$sourcewidth = imagesx($source);
$sourceheight = imagesy($source);
//calcul le rapport entre largeur et longueur...
$rapport_dim = $sourcewidth / $sourceheight;
//test si image en portrait ou en paysage
if ( $sourcewidth >= $sourceheight ) {
$destwidth = $newsize;
$destheight = $destwidth / $rapport_dim;
} else {
$destheight = $newsize;
$destwidth = $destheight * $rapport_dim;
}
//crée l'image (taille de l'imange source)
$img_rs = imagecreatetruecolor($destwidth, $destheight) or die ('
Erreur lors de la création de l\'image '.$filename.'');
//rempli le fond de blanc
//$red = imagecolorallocate($img_rs, 255, 0, 0);
//$white = imagecolorallocate($img_rs, 255, 255, 255);
//$black = imagecolorallocate($img_rs, 0, 0, 0);
$white = imagecolorallocate($img_rs, 255, 255, 255);
Imagefill($img_rs, 0, 0, $white);
Imagecolortransparent($img_rs, $white);
//ajoute par dessus l'image source miniaturisée
imagecopyresampled($img_rs, $source, 0, 0, 0, 0, $destwidth, $destheight, $sourcewidth, $sourceheight);
//crée la miniature
switch ($mime_photo) {
case 'image/jpeg' :
Imagejpeg ($img_rs, $destination.'/'.$filename);
break;
case 'image/gif' :
ImageGif ($img_rs, $destination.'/'.$filename);
break;
case 'image/png' :
ImagePng ($img_rs, $destination.'/'.$filename);
break;
}
return true;
}
?>