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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
function redimage($img_src, $img_dest, $dst_w, $dst_h, $admin=false) {
//echo 'img_src: '.$img_src.'<br> img_dest :'.$img_dest.'<br> dst_w: '.$dst_w.'<br> dst_h: '.$dst_h;
//Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
//echo '<br> size : '.$size.'<br> src_w :'.$src_w ;
//die();
//Teste les dimensions tenant dans la zone
$test_h = round(($dst_w / $src_w) * $src_h);
$test_w = round(($dst_h / $src_h) * $src_w);
//Si Height final non précisé (0)
if(!$dst_h) {
$dst_h = $test_h;
}
//Sinon si Width final non précisé (0)
elseif(!$dst_w) {
$dst_w = $test_w;
}
//Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$dst_h) {
$dst_w = $test_w;
}
else {
$dst_h = $test_h;
}
//La vignette existe ?
$test = (file_exists($img_dest));
//L'original a été modifié ?
if($test) {
$test = (filemtime($img_dest)>filemtime($img_src));
}
//Les dimensions de la vignette sont correctes ?
if($test) {
$size2 = GetImageSize($img_dest);
$test = ($size2[0]==$dst_w);
$test = ($size2[1]==$dst_h);
}
//Créer la vignette ?
if(!$test) {
//Crée une image vierge aux bonnes dimensions
$extension=explode('.',$img_src);
//$dst_im = ImageCreate($dst_w,$dst_h);
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
//Copie dedans l'image initiale redimensionnée
if(strtolower($extension[1])=='jpg')
{
$src_im = imagecreatefromjpeg($img_src);
}
if(strtolower($extension[1])=='png')
{
$src_im = imagecreatefrompng($img_src);
}
if(strtolower($extension[1])=='gif')
{
$src_im = imagecreatefromgif($img_src);
}
//ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
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);
//Détruis les tampons
ImageDestroy($dst_im);
ImageDestroy($src_im);
}
$retour_dossier = '';
if($admin) {
$retour_dossier = '../';
}
//Affiche le descritif de la vignette
return 'src="'.$retour_dossier.$img_dest.'?t='.time().'" width="'.$dst_w.'" height="'.$dst_h.'"';
} |
Partager