Wall posté le Vendredi 2 mai 2008


Bonjour à tous,
J'ai essayé de modifier la source "Un script de galerie photos (miniatures)", en créant les miniatures toutes d'un coup (ce qui permet l'envoi en ftp et par formulaire) et en mettant ces images dans plusieurs dossiers. Mais il n'y a qu'une miniture qui se crée par dossier ...
Merci beaucoup de votre aide !


  1. $rep = "Photos/";
  2.       $dir = @opendir($rep);
  3.  
  4.       $php_nomdossier = array();
  5.       $i = 0;
  6.             
  7.       while($f = readdir($dir)) {
  8.          if(is_dir($rep.$f) && $f != '.' && $f != '..') {            
  9.             $php_nomdossier[$i] = $f;
  10.             $i++;
  11.             }
  12.          }
  13.  
  14.       closedir($rep);
  15.       
  16.       $j = 0;
  17.  
  18.       while($j != $i) {
  19.          $reptotal = $rep.$php_nomdossier[$j].'/';
  20.          $dir = @opendir($reptotal);
  21.          
  22.          while($f = readdir($dir)) {
  23.             if(is_file($reptotal.$f) && $f != '.' && $f != '..') {      
  24.                if(GetExtensionName($f,false) == 'jpg' || GetExtensionName($f,false) == 'png') {
  25.                   echo $f;
  26.                   // infos sur l'image
  27.                   $tableau = @getimagesize($reptotal.$f);
  28.                   // on défini le répertoire où sont stockées les images de grande taille
  29.                   $dir = $reptotal;
  30.                   // on défini le répertoireoù seront stockées les miniatures
  31.                   $dir_mini = $reptotal.'/mini';
  32.                   // hauteur/largeur max
  33.                   $ratio = 150;
  34.                   
  35.                   
  36.                   // si notre image est de type jpeg
  37.                   if (@GetExtensionName($f,false) == 'jpg') {
  38.                      // on crée une image à partir de notre grande image à l'aide de la librairie GD
  39.                      $src = imagecreatefromjpeg($dir.'/'.$f);
  40.                      
  41.                      //on teste si notre image est de type paysage ou portrait
  42.                      if ($tableau[0] > $tableau[1]) {
  43.                         $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
  44.                         imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
  45.                         }
  46.                      else {
  47.                         $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
  48.                         imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
  49.                         }
  50.                   
  51.                      // on copie notre fichier généré dans le répertoire des miniatures
  52.                      imagejpeg($im, $dir_mini.'/'.$f);
  53.                      }
  54.                   
  55.                   // si notre image est de type png
  56.                   elseif (@GetExtensionName($f,false) == 'png') {
  57.                      $src = imagecreatefrompng($dir.'/'.$f);
  58.                      
  59.                      if ($tableau[0] > $tableau[1]) {
  60.                         $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
  61.                         imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
  62.                         }
  63.                      else {
  64.                         $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
  65.                         imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
  66.                         }
  67.                   
  68.                      imagepng ($im, $dir_mini.'/'.$f);
  69.                      }
  70.                   }
  71.                }
  72.             }
  73.          $j++;
  74.          }
  75.             
  76.       closedir($rep); 

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog