Salut ,
Voici un petit exemple que j'ai fait pour toi :)
Bien sur ,tu peux l'adapter pour tes besoins .
Le but etant que tu vois ce qu'il faut utiliser comme instructions.
Dans l'exemple on prend une image d'origine ( quelle que soit sa taille) et on tente de faire une image de 640 x 480 en faisant un recalcul d'echelle pour la mettre dans la plus grande largeur (640 ) ou la plus grande hauteur (480) .
Tu peux jouer sur la qualite pour diminuer la taille du fichier final .Pour certaines petites miniature je prends des fois 20 ( ca suffit) .
$imgGenW = 640 ;
$imgGenH = 480 ;
// on prepare une image en memoire de la taille voulue
$mem_imgGen = imagecreatetruecolor( $imgGenW , $imgGenH );
// Nom de l'image d'origine
$imgori = 'imgori.jpg' ;
// on recup les dimensions de l'image d'origine
list($imgori_width, $imgori_height) = getimagesize($imgori);
// creation du zone memoire a partir de l'image d'origine
$mem_imgori = imagecreatefromjpeg($imgori);
// petit calcul pour garder les proportions par exemple
$newwidth = 0;
$newheight = 0;
$ratio = $imgori_height / $imgori_width;
if ($imgori_width > $imgori_height)
{
$newwidth = $imgGenW;
$newheight = $newwidth * $ratio;
}
else
{
$newheight = $imgGenH;
$newwidth = $newheight / $ratio;
}
// on copie l'image d'origine dans la zone de la nouvelle image
imagecopyresampled($mem_imgGen, $mem_imgori, 0 , 0 , 0, 0, $newwidth, $newheight , $imgori_width , $imgori_height);
// liberation de la memoire de l'image d'origine
imagedestroy($mem_imgori);
// cela permettra un affichage qui semble plus rapide a l'affichage
// pas obligatoire mais peut etre utile pour les grosses images
imageinterlace ( $mem_imgGen , 1 );
// on defini la qualité de la transformation jpg
$QualiteJpg = 75 ; // Qualité de l'image 75 est une qualité pas mauvaise .. 100 = meilleur qualité ... 1 = tres mauvaise qualité
// On sauve l'image memoire dans le fichier
imagejpeg($mem_imgGen, 'newimage.jpg', $QualiteJpg);
// on libere la memoire
imagedestroy($mem_imgGen);
//
echo "<img src='imgori.jpg' >";
echo "<img src='newimage.jpg' >";