bonjour,
alors voilà j'ai un code qui me permet de créer des miniatures d'images stockés dans un repertoire.
Ce code permet de créer les miniatures en appliquant un ratio afin de les reduire de facon qu'elle ne soit pas deformées.
jusque la tout fonctionne très bien.
Maintenant pour une question de mise en page, je souahiterai ajouter a mon code une hauteur maxi et une largeur maxi pour mes miniatures.
Une miniature d'image aurait donc pour valeur maxi en largeur 173px et en hauteur 130px.
Voici le code que j'utilise actuellemntavec un ratio de 130.
je souhaiterai l'adapter mais pour qu'il gère maintenant la largeur max et hauteur maxi des miniatures.
Modifié par fabrice88 (02 Aug 2009 - 20:28)
alors voilà j'ai un code qui me permet de créer des miniatures d'images stockés dans un repertoire.
Ce code permet de créer les miniatures en appliquant un ratio afin de les reduire de facon qu'elle ne soit pas deformées.
jusque la tout fonctionne très bien.
Maintenant pour une question de mise en page, je souahiterai ajouter a mon code une hauteur maxi et une largeur maxi pour mes miniatures.
Une miniature d'image aurait donc pour valeur maxi en largeur 173px et en hauteur 130px.
Voici le code que j'utilise actuellemntavec un ratio de 130.
je souhaiterai l'adapter mais pour qu'il gère maintenant la largeur max et hauteur maxi des miniatures.
// on défini notre ratio pour nos miniatures
$ratio = 130;
// on défini le répertoire qui contient nos images de grande taille
$dir = '../images/galerie/';
// si aucune image n'est donnée en arguments, on redirige le visiteur vers l'accueil de la galerie
if (!isset($_GET['f'])) {
header('location: references-escaliers-vosges.php');
exit();
}
else {
// on récupère le nom de fichier à miniaturiser
$image = $_GET['f'];
// on récupère les infos de cette image
$tableau = @getimagesize('../images/galerie/'.$image);
// si il ne s'agit pas d'un fichier image, on redirige le visiteur vers l'accueil de la galerie
if ($tableau == FALSE) {
header('location: references-escaliers-vosges.php');
exit();
}
else {
// si notre image est de type jpeg
if ($tableau[2] == 2) {
// on crée une image à partir de notre grande image à l'aide de la librairie GD
$src = imagecreatefromjpeg($dir.'/'.$image);
// on teste si notre image est de type paysage ou portrait
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
// on envoie un header au navigateur web du visiteur lui disant que le fichier mini.php va en fait générer une image de type jpeg, soit du type mime image/jpeg.
header ("Content-type: image/jpeg");
imagejpeg ($im);
}
elseif ($tableau[2] == 3) {
$src = imagecreatefrompng($dir.'/'.$image);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
header ("Content-type: image/png");
imagepng ($im);
}
}
}
Modifié par fabrice88 (02 Aug 2009 - 20:28)