"Un script de galerie photos (miniatures)" modifié

Répondre
DJejel
le 02/05/2008 à 17:07
DJejel
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 miniature qui se crée par dossier ...
Merci beaucoup de votre aide !

voir le code ici : http://www.lephpfacile.com/wall/wall-1558.php
moogli
le 02/05/2008 à 17:26
moogli
salut,

pour parcourir un tableau utilise foreach pour te faciliter la tache.

$src = imagecreatefromjpeg($dir.'/'.$f);

$dir finit par un / (vu que c'est le cas de $reptotal).

$dir_mini = $reptotal.'/mini'; (truc//mini).

affiche le contenu de tes variables tu y verra des surprises je pense ;)

@+
Il en faut peu pour être heureux !!!!!
DJejel
le 02/05/2008 à 17:56
DJejel
Merci de ta réponse si rapide !
J'ai donc modifié un peu ma source et j'arrive à ceci, mais toujours le même problème ...
(j'ai essayé d'utiliser foreach mais il ne m'affichait qu'un résultat .. :( )
<?php
$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') {

// 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épertoire où seront stockées les miniatures
$dir_mini = $reptotal.'mini';
// 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);

$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);

$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);
?>
DJejel
le 02/05/2008 à 18:02
DJejel
oups excusez moi ! je n'avais pas vu que la variable $dir était définit 2 fois ... smiley
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours