$dst_h) $dst_w = $test_w; else $dst_h = $test_h; // Créer la vignette ? // Crée une image vierge aux bonnes dimensions $dst_im = ImageCreateTrueColor($dst_w,$dst_h); // Copie dedans l'image initiale redimensionnée $src_im = ImageCreateFromJpeg($img_src); ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h); // Sauve la nouvelle image ImageJpeg($dst_im,$img_dest,100); // Détruis les tampons ImageDestroy($dst_im); ImageDestroy($src_im); } */ $fichier = "../../.." . $fichier; if(!$alignement) { $alignement = "2|2"; } redimage($fichier,$largeur,$hauteur,$alignement,100); //----------------------------------------fonction redim + recadrage-------------------------------- // align=largeur.hauteur; 1:gauche ou haut 2:centrer 3:droite ou bas function redimage($image,$largeur,$hauteur,$alignement,$quality_image) { header ("Content-type: image/jpeg"); $img_in = imagecreatefromjpeg($image); $align=array(); $align = explode("|",$alignement); $size = GetImageSize($image); $l = $size[0]; $h = $size[1]; if ($l >= $largeur && $h>= $hauteur) { $new_haut = ($h * $largeur) / $l; if($new_haut < $hauteur) { $new_haut = $hauteur; $new_larg = ($l * $hauteur) / $h; } else { $new_larg = $largeur; } // on réduit l'image à la largeur voulue, mais en gardant la hauteur proportionnelle $img_out = ImageCreateTrueColor($new_larg, $new_haut); ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), $l, $h); // création d'une image vide aux dimensions de la miniature $im = ImageCreateTrueColor($largeur, $hauteur); switch($align[0]) { case 1: $src_x=0; break; case 2: $src_x=($new_larg-$largeur)/2; break; case 3: $src_x=($new_larg-$largeur); break; } switch($align[1]) { case 1: $src_y=0; break; case 2: $src_y=($new_haut-$hauteur)/2; break; case 3: $src_y=($new_haut-$hauteur); break; } // on copie la zone de l'image de hauteur voulue dans l'image vide @imagecopy($im, $img_out, 0, 0, $src_x, $src_y, $largeur, $hauteur) or imagecopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur); imagejpeg($im,$im_dest,$quality_image); // destruction des images en mémoire imagedestroy($img_out); imagedestroy($im); } elseif ($l < $largeur && $h >= $hauteur) { $img_out = ImageCreateTrueColor($l, $h); ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), $l, $h); $im = ImageCreateTrueColor($l, $hauteur); switch($align[1]) { case 1: $src_y=0; break; case 2: $src_y=($h-$hauteur)/2; break; case 3: $src_y=($h-$hauteur); break; } @imagecopy($im, $img_out, 0, 0, 0, $src_y, $l, $hauteur) or imagecopy($im, $img_out, 0, 0, 0, 0, $l, $hauteur); imagejpeg($im,$im_dest,$quality_image); // destruction des images en mémoire imagedestroy($img_out); imagedestroy($im); } elseif ($l >= $largeur && $h < $hauteur) { $img_out = ImageCreateTrueColor($l, $h); ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), $l, $h); $im = ImageCreateTrueColor($largeur , $h); switch($align[0]) { case 1: $src_x=0; break; case 2: $src_x=($l-$largeur)/2; break; case 3: $src_x=($l-$largeur); break; } @imagecopy($im, $img_out, 0, 0, $src_x, 0, $largeur, $h) or imagecopy($im, $img_out, 0, 0, 0, 0, $largeur, $h); imagejpeg($im,$im_dest,$quality_image); // destruction des images en mémoire imagedestroy($img_out); imagedestroy($im); } elseif ($l < $largeur && $h< $hauteur) { imagejpeg($img_in,$img_in_dest,$quality_image); } // destruction de l'image en mémoire imagedestroy($img_in); } ?>