Salut,
Ci-dessous le script que j'utilise pour redimensionner une image soumise à la volée, à adapter à tes besoins...
$NomLogo = $_FILES['Logo']['name'];
$SizeLogo = $_FILES['Logo']['size'];
$TmpLogo = $_FILES['Logo']['tmp_name'];
$ErrorMsg = $_FILES['Logo']['error'];
$RepCible = "images/logos_clients/";
$MaxSize = 300000; //Limite de 100Ko
$MaxSizeWidth = 150; //Limite de 90 pixels de large
$MaxSizeHeight = 50; //Limite de 70 pixels de haut
$new_Type = "jpg";
$TailleLogo = getimagesize($NomTmpLogo);
$TypeLogo = $TailleLogo[2];
$LogoCible = $RepCible . "logo" . $Client_Info["Client_ID"];
//print "Nom temporaire : $NomTmpLogo<br>";
//print "Nom cible : $LogoCible<br>";
//exit;
if(!empty($NomLogo)){
if($SizeLogo <= $MaxSize){
if(move_uploaded_file($NomTmpLogo,$LogoCible)) {
switch($TypeLogo){
case 1:
$TypeLogo = "gif";
break;
case 2:
$TypeLogo = "jpg";
break;
case 3:
$TypeLogo = "png";
break;
default:
$TypeLogo = "Erreur";
break;
}
if($TypeLogo != "Erreur") {
//On charge l'ancien logo suivant son type
switch($TypeLogo){
case "gif":
$oldLogo = ImageCreateFromGif($LogoCible);
break;
case "jpg":
$oldLogo = ImageCreateFromJpeg($LogoCible);
break;
case "png":
$oldLogo = ImageCreateFromPng($LogoCible);
break;
}
//On détermine la taille de l'ancien logo
$oldLogoWidth = $TailleLogo[0];
$oldLogoHeight = $TailleLogo[1];
if($oldLogoHeight > $oldLogoWidth){
//Hauteur du nouveau logo
$newLogoHeight = $MaxSizeHeight;
//On maintient le ratio de l'image
$newLogoWidth = round(($newLogoHeight / $oldLogoHeight) * $oldLogoWidth);
}elseif($oldLogoHeight < $oldLogoWidth){
//Largeur du nouveau logo
$newLogoWidth = $MaxSizeWidth;
//On maintient le ratio de l'image
$newLogoHeight = round(($newLogoWidth / $oldLogoWidth) * $oldLogoHeight);
}elseif($oldLogoHeight == $oldLogoWidth){
//Largeur & hauteur du nouveau logo
$newLogoWidth = $MaxSizeWidth;
$newLogoHeight = $MaxSizeHeight;
}
//Création du nouveau logo
$newLogo = ImageCreateTrueColor($newLogoWidth,$newLogoHeight);
//Redimentionnement de l'ancien logo dans le nouveau logo
ImageCopyResampled($newLogo,$oldLogo,0,0,0,0,$newLogoWidth,$newLogoHeight,$oldLogoWidth,
$oldLogoHeight);
//On sauvegarde le nouveau logo en remplacant l'ancien suivant son type
switch($new_Type){
case "gif":
ImageGif($newLogo,$LogoCible);
break;
case "jpg":
ImageJpeg($newLogo,$LogoCible);
break;
case "png":
ImagePng($newLogo,$LogoCible);
break;
}
$new_Nom = "Logo" . $Client_Info["Client_ID"] . ".".$new_Type;
rename($LogoCible,$RepCible.$new_Nom);
//On détruit les images temporaires
ImageDestroy($newLogo);
ImageDestroy($oldLogo);
//Fichier Final avec chemin compplet
$Final_File = $RepCible . $new_Nom;
} else {
//Mauvais format de Logo, avertir
}
} else {
//Pbe upload avertir
exit;
}
} else {
//Image >300KO
exit;
}
}
}
Bon courage !