Salut à tous,
j'ai voulu faire une fonction permettant de redimensionner une image uploadée. Je me suis inspiré des fonctions de ce site, et tout marche parfaitement, à une exception près: si l'utilisateur fait son dessin sous paint et qu'il l'enregistre en .jpeg, la fonction ne marche pas car pour elle le type de l'image est bmp (j'ai fait un echo de ce que renvoyait getimagesize et le chiffre 6 est affiché, ce qui correspond au format bmp). je voulais donc savoir comment résoudre ce problème, qui est tout de même assez enervant pour les personnes novices qui pensent réellement envoyer des photo au format jpeg et qui se voient refuser le truc.
Voici ma fonction de redimensionnement:
function redim($photo,$pseudo){
//cette fonction redimensionne une image déjà uploadée
//on commence par récupérer les dimensions originales
$taille=getimagesize('../upload/'.$pseudo.'/'.$photo);
$largeur=$taille[0];
$hauteur=$taille[1];
$extension=$taille[2]; //renvoie 1 si c'est .gif, 2 si c'est .jpeg ou .jpg et 3 si c'est .png
//on veut redimensionner pour une largeur max de 250
//pour cela on regarde par combien il faut diviser la hauteur et la largeur
$var=$largeur/250;
if($var>=1){
//si var est inférieur à 1, cela veut dire que l'image est inférieure à 250 pixels de largeur, donc c'est inutile de la miniaturiser
$new_hauteur=round($hauteur/$var);
$new_largeur=round($largeur/$var);
echo $extension;
switch($extension){
case 1:
$image_in = imagecreatefromgif('../upload/'.$pseudo.'/'.$photo);
$image_out = imagecreatetruecolor($new_largeur, $new_hauteur);
break;
case 2:
$image_in = imagecreatefromjpeg('../upload/'.$pseudo.'/'.$photo);
$image_out = imagecreatetruecolor($new_largeur, $new_hauteur);
break;
case 3:
$image_in = imagecreatefrompng('../upload/'.$pseudo.'/'.$photo);
$image_out = imagecreatetruecolor($new_largeur, $new_hauteur);
break;
default:
echo 'Format non supporté! Seuls les jpeg, les gif et les png sont acceptés.';
?>