Leonick
samedi 18 novembre 2006 à 18:42
Allez, cadeau de la maison
CODE
<?php
function generer_miniature($image, $rep_source,$rep_dest,$largeur, $hauteur, $qualite) {
// chemin de la miniature à générer
$dest = $rep_dest.$image;
$dest_rep=substr($rep_dest,0,strrpos($rep_dest,"/"));
if ((!file_exists($dest_rep)) && (!is_dir($dest_rep)))
{mkdir ($dest_rep, 0705);
if ((!file_exists($dest_rep)) && (!is_dir($dest_rep)))
echo "<p>Erreur lors de la création du répertoire $dest_rep</p>\n";
}
$img_in = imagecreatefromjpeg($rep_source.$image);
$size = getimagesize($rep_source.$image);
$l = $size[0];$h = $size[1];
$ratio=max($h/$hauteur,$l/$largeur);
$new_haut =$h /$ratio;$new_larg =$l /$ratio;
// 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($new_larg, $new_haut);
// on copie la zone de l'image de hauteur voulue dans l'image vide
ImageCopy($im, $img_out, 0, 0, 0, 0, $new_larg, $new_haut);
ImageJpeg($im, $dest, $qualite);
// destruction des images en mémoire
ImageDestroy($img_out);
ImageDestroy($im);
}
?>