14 pers. connectées au site
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 !
- $rep = "Photos/";
- $dir = @opendir($rep);
-
- $php_nomdossier = array();
- $i = 0;
-
- while($f = readdir($dir)) {
- if(is_dir($rep.$f) && $f != '.' && $f != '..') {
- $php_nomdossier[$i] = $f;
- $i++;
- }
- }
-
- closedir($rep);
-
- $j = 0;
-
- while($j != $i) {
- $reptotal = $rep.$php_nomdossier[$j].'/';
- $dir = @opendir($reptotal);
-
- while($f = readdir($dir)) {
- if(is_file($reptotal.$f) && $f != '.' && $f != '..') {
- if(GetExtensionName($f,false) == 'jpg' || GetExtensionName($f,false) == 'png') {
- echo $f;
- // infos sur l'image
- $tableau = @getimagesize($reptotal.$f);
- // on défini le répertoire où sont stockées les images de grande taille
- $dir = $reptotal;
- // on défini le répertoireoù seront stockées les miniatures
- $dir_mini = $reptotal.'/mini';
- // hauteur/largeur max
- $ratio = 150;
-
-
- // si notre image est de type jpeg
- if (@GetExtensionName($f,false) == 'jpg') {
- // on crée une image à partir de notre grande image à l'aide de la librairie GD
- $src = imagecreatefromjpeg($dir.'/'.$f);
-
- //on teste si notre image est de type paysage ou portrait
- if ($tableau[0] > $tableau[1]) {
- $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
- imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
- }
- else {
- $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
- imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
- }
-
- // on copie notre fichier généré dans le répertoire des miniatures
- imagejpeg($im, $dir_mini.'/'.$f);
- }
-
- // si notre image est de type png
- elseif (@GetExtensionName($f,false) == 'png') {
- $src = imagecreatefrompng($dir.'/'.$f);
-
- if ($tableau[0] > $tableau[1]) {
- $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
- imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
- }
- else {
- $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
- imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
- }
-
- imagepng ($im, $dir_mini.'/'.$f);
- }
- }
- }
- }
- $j++;
- }
-
- closedir($rep);
Remonter