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
|
function modif_image($img_source,$img_destination,$largeur,$longueur) {
// Lit les dimensions de l'image
$size = getimagesize($img_source);
$src_w = $size[0];
$src_h = $size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($largeur / $src_w) * $src_h);
$test_w = round(($longueur / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$longueur) $longueur = $test_h;
// Sinon si Width final non précisé (0)
elseif(!$largeur) $largeur = $test_w;
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$longueur) $largeur = $test_w;
else $longueur = $test_h;
// La vignette existe ?
$test = (file_exists($img_destination));
// L'original a été modifié ?
if($test)
$test = (filemtime($img_destination)>filemtime($img_source));
// 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
$creation_im_vierge= imagecreate($largeur,$longueur);
// Copie dedans l'image initiale redimensionnée
$copier_dans_im = imagecreatefromjpeg($img_source);
imagecopyresized($creation_im_vierge, $copier_dans_im,0,0,0,0,$largeur,$longueur,$src_w,$src_h);
// Sauve la nouvelle image
imagejpeg($creation_im_vierge,$img_destination);
// Détruis les tampons
imagedestroy($creation_im_vierge);
imagedestroy( $copier_dans_im);
}
// Affiche le descritif de la vignette
echo "SRC='".$img_destination."' WIDTH=".$largeur." HEIGHT=".$longueur;
} |
Partager