Images miniatures PHP

Fermé
Semperfi - 24 mars 2010 à 18:22
 Semperfi - 27 mars 2010 à 12:01
Bonjour,
Je cherche à créer une galerie d'images avec des miniatures. Je stock les grandeurs nature dans un dossier "photos". J'ai crée deux fichiers :

Le premier, thumb.php, avec le code suivant :
<?php
/* Le contenu généré sera une image PNG */
header("Content-type: image/png");
/* Récupération du paramêtre */
$file = $_GET["file"];
/* Récupération des attributs de l'image. */
$attr = getimagesize($file);
$src = imagecreatefromjpeg($file);
/* Création de l'image de destination. La taille de la miniature sera 133x100 */
$dest = imagecreatetruecolor(133,100);
/* Redimensionnement de src sur dest */
imagecopyresampled($dest,$src,0,0,0,0,133,100,$attr[0],$attr[1]);
imagepng($dest);
?>

Et le deuxieme, photos.php :
<?php
$PHOTOS_DIR="photos";
/* Nom du répertoire contenant les photos. */
/* Dans cet exemple, ce nom est contenu dans ce script.
Pour une version portable de notre gallerie, il serait judicieux de le passer en paramêtre */
$cpt=0; /* Compteur d'image par ligne. */
$cptotal = 0; /* Nombre total d'images. */
if ( is_dir($PHOTOS_DIR) )
/* Si myphotos est bien un répertoire valide */
{
if ( $handle= opendir($PHOTOS_DIR) ) /* Ouverture du répertoire */
{
/* Nos images seront affichées dans un tableau. */
echo "<table width='100%' cellspacing='2' align='center'>";
/* parcours et affichage de toutes les images */
while ( ($file= readdir($handle)) != NULL )
{
/* Test obligatoire pour ne pas afficher des images erronées */
if ( $file != "." & $file != "..")
{
$cptotal++;
if ( $cpt == 0 ) /* debut d'une ligne */
{
echo "<tr>";
echo "<td align='center' valign='center'>";
/* Lien vers le fichier image */
$file = ''.$PHOTOS_DIR.'/'.$file.'';
echo "<img class='gallerie' border='0' src='thumb.php?file=".$file."'>";
/* Affichage du nom du fichier image */
$cpt++;
echo "</td>";
}
if ( $cpt == 5 ) /*Après 5 images affichées, nouvelle ligne */
{
echo "</tr>";
$cpt=0;
}
}
}
/* Fin du parcours des images */
if ( $cpt != 5 )
{
/* La ligne n'a pas été fermée en fin de boucle */
echo "</tr>";
}
echo "<table>";
/* end if ($handle= opendir($PHOTOS_DIR) ) */
if ( $cptotal == 0 )
{
echo "<p>Aucune photo trouvée !</p>";
} /* end if (isdir...) */
}
}
?>


Ce procédé n'affiche qu'une seule miniature, celle d'une des images se trouvant dans le dossier "photos". Quelqu'un aurait-il une idée, pourquoi toutes les miniatures ne se créent-elles pas ?
Merci d'avance.

A voir également:

3 réponses

Personne pour m'aider ? =(
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
27 mars 2010 à 00:37
Recherches sur google avant de poser une question ;-)
3 secondes pour le premier résultat :
https://www.google.fr/search?q=miniatures+php&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a&gws_rd=ssl
0
Si je pose une question c'est justement parce que j'ai déjà lu les 4 premières pages de google avec cette recherche ;) Le code que j'ai présenté est justement proposé sur un de ces sites, c'est celui qui me convient le mieux mais il ne marche pas. Au départ il n'affichait aucune image, maintenant une apparaît.

Merci bien.
0