bonjour tlm

j'ai fini ma page du listing des équipes (pour ceux qui ont suivi hier ^^) et maintenant je dois faire la galerie ... J'ai déjà cherché des scripts préfaits de galeries automatiques, j'en ai pris un, mais il marche pas correctement : il affiche bien sur le nombre de colonnes désirées, quand on clique sur la vignette on a le bon lien vers l'image plus grande, le probleme, ce qu'il n'arrive pas a créer les vignettes, a la place j'ai pleins de jolies cases agrémentées d'une tite croix rouge sur fond blanc ^^

voici le code du script de création des vignettes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
// on défini notre ratio pour nos miniatures (CF. plus haut pour des explications
$ratio = 150;
// on défini le répertoire qui contient nos images de grande taille
$dir = './images';
 
// si aucune image n'est donnée en arguments, on redirige le visiteur vers l'accueil de la galerie
if (!isset($_GET['f'])) {
    header('location: galerie.php');
    exit();
}
else {
    // on récupère le nom de fichier à miniaturiser
    $image = $_GET['f'];
    // on récupère les infos de cette image
    $tableau = @getimagesize('./images/'.$image);
    // si il ne s'agit pas d'un fichier image, on redirige le visiteur vers l'accueil de la galerie
    if ($tableau == FALSE) {
        header('location: galerie.php');
        exit();
    }
    else {
        // si notre image est de type jpeg
        if ($tableau[2] == 2) {
            // on crée une image à partir de notre grande image à l'aide de la librairie GD
            $src = imagecreatefromjpeg($dir.'/'.$image);
            // 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]);
            }
            // contrairement au premier cas où l'on créait un fichier sur le disque dur, ici, comme on génère des images à la volée, on envoie un header au navigateur web du visiteur lui disant que le fichier mini.php va en fait générer une image de type jpeg, soit du type mime image/jpeg.
            header ("Content-type: image/jpeg");
            imagejpeg ($im);
        }
        elseif ($tableau[2] == 3) {
            $src = imagecreatefrompng($dir.'/'.$image);
            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]);
            }
            header ("Content-type: image/png");
            imagepng ($im);
        }
    }
}
?>

et celui la celui de la page galerie.php qui doit afficher les images :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>page de test</title>
	   <link href="style.css" rel="stylesheet" type="text/css">
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   </head>
   <body>
 
   <div id="header">
   </div>
 
  <? include('menu.htm'); ?>
 
 
 
 
   <div id="vide">
   </div>
 
   <div id="barre_haut">
   </div>
 
   <div id="corps">
 
 
		<?php
 
$tableau = array();
$dossier = opendir ('./images/'); 
while ($fichier = readdir ($dossier)) {
    if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
        $tableau[] = $fichier;
    }
} 
closedir ($dossier); 
 
$nbcol=4;
$nbpics = count($tableau);
 
if ($nbpics != 0) {
    echo '<table>';  
    for ($i=0; $i<$nbpics; $i++){
        if($i%$nbcol==0) echo '<tr>';  
        // noter bien que l'on place un lien vers le fichier mini.php qui va générer nos miniatures. On ajoute un argument, le nom de fichier image à miniaturiser
        echo '<td><a href="images/' , $tableau[$i] , '"><img src="mini.php?f=' , $tableau[$i] , '" alt="Image" /></a></td>';  
        if($i%$nbcol==($nbcol-1) or $i==($nbpics-1)) echo '</tr>';
    }  
    echo '</table>';
}
else echo 'Aucune image à afficher';
?>
 
 
 
   </div>
 
   <div id="barre_bas">
   </div>
 
   </body>
</html>