Nainwak's World Index du Forum Nainwak's World
Combattez des nains de jardins !
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Script php gallerie d'images

 
Poster un nouveau sujet   Répondre au sujet    Nainwak's World Index du Forum -> Papottoir
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Musclenain
Nain-stallé(e)


Inscrit le: 21 Jan 2005
Messages: 204
Localisation: Au Chateau des Ombres

MessagePosté le: Lun Fév 07, 2005 10:13 am    Sujet du message: Script php gallerie d'images Répondre en citant

Voilà je cherche un script php pour une gallerie d'images. En cherchant sur le net, on en trouve des tonnes et des tonnes mais... c'est compliqué pour moi Embarassed . Plus sérieusement, j'aimerai un script simple qui tienne en un fichier php et pas un truc lourdeau qui a des milliers d'options...

J'ai un répertoire contenant toutes les images, j'aimerai que le script parcours ce répertoire, et les affiche en miniatures dans une section <table></table> que j'aurais définie. Quand on clique sur le miniature, il l'ouvre dans une autre fenêtre.

Et surtout que le script ne soit pas trop compliqué à comprendre pour que je puisse le personnaliser (cadre, background, etc...).

Si vous connaissez un script dans ce genre, merci par avance. Sinon j'en prendrai un hyper complexe Laughing .
_________________
Musclenain
Représentant des DA 80's
http://da80s.free.fr
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
Musclenain
Nain-stallé(e)


Inscrit le: 21 Jan 2005
Messages: 204
Localisation: Au Chateau des Ombres

MessagePosté le: Lun Fév 07, 2005 10:26 am    Sujet du message: Répondre en citant

Je pense aussi que ce script soit réalisable soi-même, donc avec un ou deux petits conseils, je pense pourvoir le réaliser moi-même... Je sais lister un répertoire, afficher ce qu'il contient mais générer des miniatures.... Confused
_________________
Musclenain
Représentant des DA 80's
http://da80s.free.fr
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
Azharh
Nain-stallé(e)


Inscrit le: 20 Jan 2005
Messages: 260
Localisation: There are only 10 types of people in the world: Those who understand binary, and those who don't

MessagePosté le: Lun Fév 07, 2005 6:02 pm    Sujet du message: Répondre en citant

C'est marrant ça... Je suis justement en train de bosser sur ça ! Very Happy (bon, c'est vrai qu'à raison d'une heure ou deux tous les week-end, j'avance pas très très vite, mais bon... Rolling Eyes)
_________________
Azharh



Mari de la délicieuse Dame Pistachou.
Celestia, femme de Neo_Bahamut !
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger
Moebius
Nain(e) au biberon


Inscrit le: 02 Fév 2005
Messages: 3
Localisation: Quelque part, près d'un fût de bière

MessagePosté le: Mar Fév 08, 2005 11:30 am    Sujet du message: Répondre en citant

Un petit script, tout simple.
Il faut que tu mettes les vignettes dans un repertoire appelé "vignettes", et les grandes images dans un repertoire appellé "grandes" et c'est tout. Wink

Fichier "galerie.php"
Code:
<html>
<body>
<?
require("function.php");

$files = getDirFiles("./vignettes");

$nbCols = 4;
$nbRows = 3;

if(isset($_GET["i"]) )
   $i = $_GET["i"];
else
   $i = 0;

echo "<table width = \"100%\">\n";
$k = 0;
$prevnext ="";
if (!($i == 0))
{
   $iTmp = $i - $nbCols*$nbRows;
   $prevnext .= " <a href = afficheimage.php?i=$iTmp><< prev</a>";
}
if(($i + $nbCols*$nbRows) < count($files))
{
   $iTmp = $i + $nbCols*$nbRows;
   $prevnext .=" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href = afficheimage.php?i=$iTmp>next >></a>";
}

while ( $k < $nbRows AND ($i< count($files)) )
{
   echo "<tr>\n";
   for ($j = 0; $j < $nbCols; $j++)
   {
      echo "  <td>\n<a href=\"./grandes/$files[$i]\" target=\"blank\"><img src=\"./vignettes/$files[$i]\"><br>\n";
      echo " $files[$i]\n</a></td>\n";
      $i++;
   }
   echo "</tr>";
   $k++;
}
echo "</table><br>\n";

echo $prevnext;
?>
</body>
</html>


fichier "function.php"
Code:
<?
function getDirFiles($dirPath)
{
   if ($handle = opendir($dirPath))
   {
      while ($file = readdir($handle))
      {
         if ($file != "." && $file != "..")
         {
            $filesArr[] = trim($file);
         }
      }
      closedir($handle);
   }

return $filesArr;
}
?>


Voilà, il n'y a donc aucune option ! Enfin, si en changeant les valeurs de $nbCols, et $nbRows, tu change le nombre de lignes et de colonnes de la galerie.
Si c'est necessaire, l'affichage aura lieu sur plusieurs pages.
_________________
[A.d.N]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
DJMiki
Nain au biberon


Inscrit le: 20 Jan 2005
Messages: 354
Localisation: Là
biere_bleu.gif

MessagePosté le: Mar Fév 08, 2005 1:44 pm    Sujet du message: Répondre en citant

En même temps je crois qu'il ne voulait pas créer lui même les miniatures mais qu'elles soient gérées automatiquement par le script

Je me trompe ??
_________________
(\|||/)
(+'.'+) Viens Bunny, on va conquir le monde !!
(")_(")
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger
Musclenain
Nain-stallé(e)


Inscrit le: 21 Jan 2005
Messages: 204
Localisation: Au Chateau des Ombres

MessagePosté le: Mar Fév 08, 2005 1:57 pm    Sujet du message: Répondre en citant

DJMiki a écrit:
Je me trompe ??


Tu ne te trompes pas effectivement Wink
_________________
Musclenain
Représentant des DA 80's
http://da80s.free.fr
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
AtlzA
piège à boulets


Inscrit le: 20 Jan 2005
Messages: 1410
Localisation: Madrid -> Rennes
bzh.png

MessagePosté le: Mar Fév 08, 2005 2:14 pm    Sujet du message: Répondre en citant

jette un oeil du cote de la librairie GD. Wink

petit exemple de code que j'utilise sur la meteo, ce script gere 3 formats de fichiers:

Code:
function reduit_fichier($iduser,$extension){

   //error_reporting (E_ALL);
   // on donne à PHP le lien vers notre image à miniaturiser
   $path="./imgs/trombi/";
   $Image = $path.$iduser.".".$extension;
   $ratio = 100;
   $ratio2 = 640;
   $resized=0;

   // on crée une ressource représentant en fait l'image à miniaturiser
   switch ($extension){
      case "jpg" :
         $src=imagecreatefromjpeg($Image);
         break;
      case "gif" :
         $src=imagecreatefromgif($Image);
         break;
      case "png" :
         $src=imagecreatefrompng($Image);
         break;
   }


   // on récupère les paramètres de notre image (getimagesize est une fonction qui retourne un tableau contenant les paramètres d'une image : sa largeur, son hauteur, son type, etc…)
   $size = getimagesize($Image);
   //var_dump($size);


   // on test si la largeur de l'image est supérieur à sa longueur
   if ($size[0] > $size[1]) {
      $taillautre = round(($ratio/$size[1])*$size[0]);
      // on crée une ressource pour notre miniature
      if ($extension == "gif") $im=imagecreate ( round(($ratio/$size[1])*$size[0]), $ratio );
      else $im=imagecreatetruecolor(round(($ratio/$size[1])*$size[0]), $ratio);
      // on place dans la ressource que nous venons de créer une copie de l'image originelle, redimensionnée et réechantillonée
      imagecopyresampled($im, $src, 0, 0, 0, 0, $taillautre,$ratio, $size[0], $size[1]);
   }
   else {
      $taillautre = round($size[1]*($ratio/$size[0]));
      // si la largeur est inférieure ou égale à la hauteur, on entre dans ce cas
      // on crée une ressource pour notre miniature
      if ($extension == "gif") $im=imagecreate ( $ratio, round(($ratio/$size[0])*$size[1]) );
      else $im=imagecreatetruecolor($ratio, round(($ratio/$size[0])*$size[1]));
      // on place dans la ressource que nous venons de créer une copie de l'image originelle, redimensionnée et réechantillonée
      imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, $taillautre, $size[0], $size[1]);
   }

   if ($size[0] > $ratio2){
      $taillautre2 = round(($ratio2/$size[1])*$size[0]);
      // on crée une ressource pour notre miniature
      if ($extension == "gif") $im2=imagecreate ( round(($ratio2/$size[1])*$size[0]), $ratio2 );
      else $im2=imagecreatetruecolor(round(($ratio2/$size[1])*$size[0]), $ratio2);
      // on place dans la ressource que nous venons de créer une copie de l'image originelle, redimensionnée et réechantillonée
      imagecopyresampled($im2, $src, 0, 0, 0, 0, $taillautre2,$ratio2, $size[0], $size[1]);
      $resized=1;
   }


   // on définit le nom de notre miniature
   $miniature = $path."prevu/mini_".$iduser.".".$extension;

   // on crée notre miniature
   switch ($extension){
      case "jpg" :
         imagejpeg ($im , $miniature);
         break;
      case "gif" :
         imagegif ($im , $miniature);
         break;
      case "png" :
         imagepng ($im , $miniature);
         break;
   }
   imagedestroy($im);

   if ($resized == 1){
      $im_redim= $path.$iduser.".".$extension;
      imagedestroy($src);
      switch ($extension){
         case "jpg" :
            imagejpeg ($im2 , $im_redim);
            break;
         case "gif" :
            imagegif ($im2, $im_redim);
            break;
         case "png" :
            imagepng ($im2 , $im_redim);
            break;
      }
   }

   //imageDestroy($src);
}


ce code redimensionne l'image de base si elle est plus large que 640px et dans tout les cas en cree une miniature.
_________________
Nainwakmeteo - FireNainwak
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
gipsy
Nain(e) à l'aise


Inscrit le: 26 Jan 2005
Messages: 189

mo.gif

MessagePosté le: Sam Fév 12, 2005 4:03 am    Sujet du message: Répondre en citant

Le seul problème de ces scripts c'est que cela ne modifie pas la taille de l'image au moment de convertir donc lors de l'affichage, toutes les vignettes sont un peu lourdes et ceci est lent à charger pour un 56K par exemple...
_________________
(\_/\_/)
(+ -.- +)
!! Bunny au pouvoir !!
(")_|_(") Aidez-le à rejoindre mon encyclo...

Gipsy.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
AtlzA
piège à boulets


Inscrit le: 20 Jan 2005
Messages: 1410
Localisation: Madrid -> Rennes
bzh.png

MessagePosté le: Sam Fév 12, 2005 7:06 pm    Sujet du message: Répondre en citant

le mien est une fonction tu l'appeles quand tu veux Wink

a l'enregistrement ou apres...

de plus tu te trompes cela ne joue pas sur ta connection l'image serait redimensionnée a la volée sur le serveur et ton ordinateur ne recevrait que la petite....

Donc pas de pb pour ta connection.
_________________
Nainwakmeteo - FireNainwak
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Nainwak's World Index du Forum -> Papottoir Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2002 phpBB Group
Traduction par : phpBB-fr.com