Cette fonction prend la imagePath en tant que paramètre et la taille à laquelle vous voulez redimensionner les image.This redimensionne l'image avec des contraintes de proportion
taille = 300 On suppose que alors il y aura trois scénarios
1) si la hauteur de l'image est supérieure à la largeur alors sa hauteur sera de 300
2) si la largeur est supérieure à sa largeur sera de 300
3) si l'image est d'un rapport 1: 1 puis à la fois la hauteur et la largeur seront de taille 300
function resizeImage($imagePath,$size)
{
$sizeData = getimagesize($imagePath);
$width = $sizeData[0];
$height = $sizeData[1];
# Loading image to memory according to type
switch ($sizeData[2]) {
case IMAGETYPE_GIF: $src = imagecreatefromgif($imagePath); break;
case IMAGETYPE_JPEG: $src = imagecreatefromjpeg($imagePath); break;
case IMAGETYPE_PNG: $src = imagecreatefrompng($imagePath); break;
default: return false;
}
if(!$src)
{
return false;
}
if($height >= $width)
{
$newheight = $size;
$newwidth = ($newheight*$width)/$height;
}
else
{
$newwidth = $size;
$newheight = ($height/$width)*$newwidth;
}
$tmp = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
# Writing image according to type to the output destination
switch ($sizeData[2]) {
case IMAGETYPE_GIF: imagegif($tmp, $imagePath); break;
case IMAGETYPE_JPEG: imagejpeg($tmp, $imagePath, 100); break;
case IMAGETYPE_PNG: imagepng($tmp, $imagePath, 9); break;
default: return false;
}
imagedestroy($src);
imagedestroy($tmp);
return true;
}
Il existe un outil appelé TimThumb: http: //www.binarymoon.co.uk/projects/timthumb/ –