Génerer une miniature d'image
Salut à tous et à toutes.
J'aimerais savoir comment génerer une miniature d'une image par une fonction php.
<?php
// éditez les 2 variables ci-dessous en fonction du résultat souhaité :
$largeur = "100"; // correspond à la largeur de l'image souhaitée
$hauteur ="100"; // correspond à la hauteur de l'image souhaitée
// et voici la création de la miniature...
header("Content-Type: image/jpeg");
list($width, $height, $type, $attr) = getimagesize($_GET['pic']);
if($type == "1")
{
$img_in = imagecreatefromgif($_GET['pic']);
}
if($type == "2")
{
$img_in = imagecreatefromjpeg($_GET['pic']);
}
if($type == "3")
{
$img_in = imagecreatefrompng($_GET['pic']);
}
$img_out = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
$t = imagejpeg($img_out);
echo $t;
?>
Ce code est correct sauf qu'il ne garde pas les proportion de l'image.
Merci pour votre aide.
Réponses apportées à cette discussion
Bonsoir,
Pour conserver les proportions, il faut calculer le ratio entre les dimensions de l'image. Le ratio se calcule en divisant la largeur par la hauteur.
Tu trouveras des exemples sur le site PHPCS.com. De plus, je t'invite fortement à contrôler ce qui arrive dans ta variable $_GET et à la sécuriser, car là tu peux potentiellement t'exposer à des failles de sécurité ou à des dénis de service si un robot s'amuse à utiliser ton script à ton insu...
++
Hugo.