Redimenssionnement d'image [php]

Fermé
Tinou - Modifié par Tinou le 26/06/2010 à 15:19
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 - 28 juin 2010 à 00:30
Bonjour,

sur mon site via un formulaire ou l'utilisateur peut choisir une image, j'aimerais que cette image soit redimenssioner en tout petit et une fois en un peu plus grande. J'y arrive pas voici mon code qui redimenssione qu'une image et pas la seconde.

if( isset($_POST['upload']) ) // si formulaire soumis  
{  
  $target ='images/'; // Repertoire cible  
  $extension = 'jpg'; // Extension du fichier sans le .  
  $max_size = 10000000; // Taille max en octets du fichier  
  $width_max =3000; // Largeur max de l'image en pixels  
  $height_max = 3000; // Hauteur max de l'image en pixels  

//---------------------------------------------  
// DEFINITION DES VARIABLES LIEES AU FICHIER  
//---------------------------------------------  

  $nom_file = $_FILES['fichier']['name'];  
  $nom_file2 = $_FILES['fichier']['name'];  
  $nom_file2 = "z".$nom_file2;  
  $taille = $_FILES['fichier']['size'];  
  $tmp = $_FILES['fichier']['tmp_name'];  

//----------------------  
// SCRIPT D'UPLOAD  
//----------------------  
  if(!empty($_POST['posted']))  
  {  
    // On vérifie si le champ est rempli  
    if(!empty($_FILES['fichier']['name']))  
    {  
      // On vérifie l'extension du fichier  
      if(substr($nom_file, -3) == $extension)  
      {  
        // On récupère les dimensions du fichier  
        $infos_img = getimagesize($_FILES['fichier']['tmp_name']);  
        // On vérifie les dimensions et taille de l'image  
        if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES   ['fichier']['size'] <= $max_size))  
        {  
           $filename = $target.$nom_file;  
           if (file_exists($filename))  
           {  
             $nom_file2="yz".$nom_file2;  
             $nom_file="yz".$nom_file;  
            } 
           for($i=1;$i<=2 ;$i++)  
          {  
            if ($i==1)  
           {  
              if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$nom_file2))  
              {  

                 // Sauvegarde des tailles originales,  
                 // $pictureSize_w et $pictureSize_h vont servir au calcul de la bouvelle taille,  
                 // c est sur ces variable que l'on fera l'otération de réduction  
                 $pictureSize_w = $infos_img[0] ;  
                 $pictureSize_h = $infos_img[1] ;  

                 // On sauvegarde tout de même la taille d'origine, cela va nous être  
                 // utile lors de l'appel à la fonction imagecopyresampled  
                 $orig_pictureSize_w = $infos_img[0] ;  
                 $orig_pictureSize_h = $infos_img[1] ;  

                 $pictureSize_w = 150;  
                 $pictureSize_h = 200;  


                 // On créé l'image source en mémoire  
                 $sourceImg = imagecreatefromjpeg($target.$nom_file2);  

                 // et l'image de destination avec les tailles de la miniature  
                 $destImg = imagecreatetruecolor($pictureSize_w, $pictureSize_h);  

                // On appel la fonction qui va permettrre de redimentionner notre image  
                imagecopyresampled( $destImg, $sourceImg, 0,0,0,0,  
                $pictureSize_w, $pictureSize_h,  
                $orig_pictureSize_w, $orig_pictureSize_h );  
                // et on la sauve à un endroit donné en paramètre  

                imagejpeg ($destImg,$target.$nom_file2);  
              }  
           }  
           else  
           {  

             if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$nom_file))  
             {  

               // Sauvegarde des tailles originales,  
               // $pictureSize_w et $pictureSize_h vont servir au calcul de la bouvelle taille,  
               // c est sur ces variable que l'on fera l'otération de réduction  
              $pictureSize_w = $infos_img[0] ;  
              $pictureSize_h = $infos_img[1] ;  

              // On sauvegarde tout de même la taille d'origine, cela va nous être  
              // utile lors de l'appel à la fonction imagecopyresampled  
              $orig_pictureSize_w = $infos_img[0] ;  
              $orig_pictureSize_h = $infos_img[1] ;  

               $pictureSize_w = 450;  
               $pictureSize_h = 600;  


              // On créé l'image source en mémoire  
              $sourceImg = imagecreatefromjpeg($target.$nom_file);  

              // et l'image de destination avec les tailles de la miniature  
              $destImg = imagecreatetruecolor($pictureSize_w, $pictureSize_h);  

              // On appel la fonction qui va permettrre de redimentionner notre image  
              imagecopyresampled( $destImg, $sourceImg, 0,0,0,0,  
              $pictureSize_w, $pictureSize_h,  
              $orig_pictureSize_w, $orig_pictureSize_h );  
              // et on la sauve à un endroit donné en paramètre  

               imagejpeg ($destImg,$target.$nom_file);  


               }  
            }  
          }
A voir également:

3 réponses

Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
27 juin 2010 à 03:45
pourquoi tu fais une boucle ? il n'est pas plus simple de faire les deux à la suite ? ton erreur vient de là je pense ;)

c'est con à dire, mais il est possible que php considère que 1 != 1 :P
0
j'ai essayé les deux à la suite ca fonctionne pas :( quelqu'un d'autre sait?

merci d'avance
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
28 juin 2010 à 00:30
ça marche ça ?

<?php
if( isset($_POST['upload']) ) // si formulaire soumis  
{  
  $target ='images/'; // Repertoire cible  
  $extension = 'jpg'; // Extension du fichier sans le .  
  $max_size = 10000000; // Taille max en octets du fichier  
  $width_max =3000; // Largeur max de l'image en pixels  
  $height_max = 3000; // Hauteur max de l'image en pixels  

//---------------------------------------------  
// DEFINITION DES VARIABLES LIEES AU FICHIER  
//---------------------------------------------  

  $nom_file = $_FILES['fichier']['name'];  
  $nom_file2 = $_FILES['fichier']['name'];  
  $nom_file2 = "z".$nom_file2;  
  $taille = $_FILES['fichier']['size'];  
  $tmp = $_FILES['fichier']['tmp_name'];  

//----------------------  
// SCRIPT D'UPLOAD  
//----------------------  
  if(!empty($_POST['posted']))  
  {  
    // On vérifie si le champ est rempli  
    if(!empty($_FILES['fichier']['name']))  
    {  
      // On vérifie l'extension du fichier  
      if(substr($nom_file, -3) == $extension)  
      {  
        // On récupère les dimensions du fichier  
        $infos_img = getimagesize($_FILES['fichier']['tmp_name']);  
        // On vérifie les dimensions et taille de l'image  
        if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES   ['fichier']['size'] <= $max_size))  
        {  
           $filename = $target.$nom_file;  
           if (file_exists($filename))  
           {  
             $nom_file2="yz".$nom_file2;  
             $nom_file="yz".$nom_file;  
            } 
           for($i=1;$i<=2 ;$i++)  
          {  
            if ($i==1)  
           {  
              if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$nom_file2))  
              {  

                 // Sauvegarde des tailles originales,  
                 // $pictureSize_w et $pictureSize_h vont servir au calcul de la bouvelle taille,  
                 // c est sur ces variable que l'on fera l'otération de réduction  
                 $pictureSize_w = $infos_img[0] ;  
                 $pictureSize_h = $infos_img[1] ;  

                 // On sauvegarde tout de même la taille d'origine, cela va nous être  
                 // utile lors de l'appel à la fonction imagecopyresampled  
                 $orig_pictureSize_w = $infos_img[0] ;  
                 $orig_pictureSize_h = $infos_img[1] ;  

                 $pictureSize_w = 150;  
                 $pictureSize_h = 200;  


                 // On créé l'image source en mémoire  
                 $sourceImg = imagecreatefromjpeg($target.$nom_file2);  

                 // et l'image de destination avec les tailles de la miniature  
                 $destImg = imagecreatetruecolor($pictureSize_w, $pictureSize_h);  

                // On appel la fonction qui va permettrre de redimentionner notre image  
                imagecopyresampled( $destImg, $sourceImg, 0,0,0,0,  
                $pictureSize_w, $pictureSize_h,  
                $orig_pictureSize_w, $orig_pictureSize_h );  
                // et on la sauve à un endroit donné en paramètre  

                imagejpeg ($destImg,$target.$nom_file2);  
              }  
           
            }  
          }
		}
	  }
	}
  }
}?>
0