[PHP] tite question.

tite question. [PHP] - Programmation

Marsh Posté le 15-06-2001 à 09:14:22    

Bon voila.
g un repertoire qui contient plein d'image, et uniquement des images.
Je voudrai creer une page en php qui me genere l'appercu en vignette de ces images avec la possibilité de cliquer dessus pour les agrandir (les mettre a leur taile normal donc).
comment faire??

Reply

Marsh Posté le 15-06-2001 à 09:14:22   

Reply

Marsh Posté le 15-06-2001 à 09:43:56    

J'ai fait un truc dans le genre, mais avec deux répertoire images.
Un avec les images au format gif et petite taille pour les vignettes et un autre pour les images en jpg grand format.
 
Pour lister le contenu des répertoires, utilise:
opendir()
readdir()
closedir()
 
exemple :

Code :
  1. <?php
  2. $handle=opendir('.');
  3. while ($file = readdir($handle)) {
  4.     // Pour ne par lire les fichier . et ..
  5.     if ($file != "." && $file != ".." ) {
  6.         echo "$file\n";
  7.     }
  8. }
  9. closedir($handle);
  10. ?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 10:00:22    

pour générer tes thumbnails, utilise GD, par contre si tu utilise la dernière version (1.8.4 je crois), tu ne pourras pas faire de gif (problème de copyright). Mais tu peux le faire en png, ou installe une version antérieure.
 
Pour le parcours du répertoire le script de Mara's dad me semble très bien.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 15-06-2001 à 10:05:12    

y'a une solution HTML je pense
 
en PHP génère un truc dans le genre
 
<a href="tonimage"><img src="tonimage" width="32" heigth="32" border="0"></a>


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 15-06-2001 à 10:30:08    

m@nou, ta solution fonctionne, mais cela implique de charger toutes les images en grand format et de laisser le navigateur les réduire. J'ose pas imaginer le temps de chargement de la page !
 
duch, je vois pas l'intéret de demander au serveur de générer des thumbnails à chaque fois qu'un visiteur se pointe. Autant les générer une bonne fois pour toute non ?
 
exemple : http://www.surleau.com/photos/serie.php3?ser=10
 
Bon, là j'ai triché, les images sont référencées dans une base MySql et rangées en séries avec des commentaires, des titres...
 
Mais j'ai des pages d'administrations (protégées par mot de passe ! ) du site qui permettent:
1- De vérifier l'existance des fichiers gif et jpg des photos de la base.
2- De récupérer les nouvelles photos dans une série temporaire (C'est là que j'utilise les fonctions mentionnées plus haut)
3- D'associer les nouvelles photos à d'autre séries.
4- De créer des séries
5- De gérer les photos d'une série( Ordre d'affichage, titre, commentaires...)
 
Si çà intéresse quelqu'un, mon mail est sur le site
 
Les séries : http://www.surleau.com/photos/index.php3

 

[edit]--Message édité par Mara's dad--[/edit]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 10:46:11    

c sur ke si c des milliers d'images inter-gallactiques en 3MPixels, le d/l va être loooooooooooooong :D ;)


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 15-06-2001 à 10:50:55    

C'est quoi des thumnails?, j'aimerais bien faire la même chose, c'est à dire une page avec plusieurs mini-image sur lesquelles ont clique pour qu'elles s'agrandissent. Je vois bien comment parcourir un répertoire en PHP mais pas comment présenter les mini-images sur la même page?

Reply

Marsh Posté le 15-06-2001 à 10:58:16    

shinji a écrit a écrit :

C'est quoi des thumnails?, j'aimerais bien faire la même chose, c'est à dire une page avec plusieurs mini-image sur lesquelles ont clique pour qu'elles s'agrandissent. Je vois bien comment parcourir un répertoire en PHP mais pas comment présenter les mini-images sur la même page?




thumnails=mini-images
Pour les présenter sur une pages, il suffit de les mettre en tableau !
ex : http://www.surleau.com/photos/serie.php3?ser=10


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 11:27:23    

Mara's dad > tout à fait d'accord avec moi, je parlais du principe, mais tu utilises bien Gd pour ton appli, pour génrer les thumbnails la première fois.

Reply

Marsh Posté le 15-06-2001 à 11:31:30    

duch a écrit a écrit :

Mara's dad > tout à fait d'accord avec moi, je parlais du principe, mais tu utilises bien Gd pour ton appli, pour génrer les thumbnails la première fois.




 
Ben en fait j'ai jamais utilisé Gd !
Les images sont des scans de photos que je recadre avec PaintShopPro en 800*600 max et 109 de haut max pour les thumbnails.
 
Mais l'idée est bonne puisque j'ai une hauteur fixe pour les thumbnails !
je vais de ce pas essayer ce truc !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 11:31:30   

Reply

Marsh Posté le 15-06-2001 à 12:32:35    

Est-ce que vous pourriez montrer votre script pour que j'essaye de comprendre quelque chose SVP?

Reply

Marsh Posté le 15-06-2001 à 12:35:19    

pour commencer regardes-là http://www.php.net/manual/fr/ref.image.php
 
ou en anglais (j'sais pas vous mais moi en français j'comprends rien aux manuels)
 
http://www.php.net/manual/en/ref.image.php

Reply

Marsh Posté le 15-06-2001 à 12:49:45    

En fait, ce que g veux, c stocké mes images ds un repertoire, avoir un page qui genere mes images en miniature avec possibilité de les affiché en plus, et surtout, de que je met une nouvelle image ds ce repertoire, que ma page soit mise a jour automatiquement, sans que g a rajouté le lien ds ma page.
Mara's dad, ce que tu as fait a l'air de ce rapproché enormement a ce que je fais, donc cela m'interresse bcp, je t'envoie un mail se soir, ou demain, qd mon serveur sera reoperationel, car la je suis au taff :)
Sinon, merci deja pour c reponses :)
Si vous avez d'autres solutions, n'hesitér pas.

Reply

Marsh Posté le 15-06-2001 à 13:46:53    

duch, c'est bon, j'ai fais des test, c'est OK !
shinji, je poste des exemples simplifiés de mes scripts se soir. J'suis au taff, et y nous ont coupé le FTP :-( donc j'ai pas les sources sous la main !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 14:35:09    

Bon allez, un petit exemple mais sans thumnails.

Code :
  1. <?php
  2. /*
  3. CE SCRIPT AFFICHE LES FICHIERS .GIF DU REPERTOIRE COURRANT DANS UN TABLEAU HTML DE 4 LIGNES
  4. CHAQUE IMAGE EST UN LIEN VERS ELLE-MEME !
  5. */
  6. // Déclaration du tableau des images.
  7. $img = array();
  8. // Ouverture du répertoire courrant
  9. $handle=opendir('.');
  10. // Tant qu'il y a des fichiers dans le répertoire
  11. while ($file = readdir($handle)) {
  12. // Si l'extention du fichier est .gif
  13. if ( strrchr( $file, "." ) == ".gif" )
  14. {
  15.  // Ajoute le nom du fichier image dans le tableau
  16.         $img[] = "$file";
  17. }
  18. }
  19. // Fermeture du répertoire
  20. closedir($handle);
  21. // Déclaration d'un tableau HTML
  22. echo( "<center>\n<table border=0 cellspacing=0 cellpadding=15>\n" );
  23. // $j est un indice utilisé pour savoir quand changer de ligne
  24. $j = 0;
  25. // Boucle sur les images du tableau
  26. for( $i=0; $i < sizeof( $img ); $i++ )
  27. {
  28. // Si $j est = 0, on ouvre une ligne du tableau HTML
  29. if ( $j == 0 )
  30. {
  31.  echo( "\t<tr>\n" );
  32. }
  33. // Affichage de l'image avec un lien
  34. echo( "\t\t<td><a href='" . $img[$i] . "'><img src='" . $img[$i] . "'></a></td>\n" );
  35. // Incrémentation du nombre d'image sur la ligne
  36. $j++;
  37. // Si il y a 4 images, on ferme la ligne
  38. if ( $j == 4 )
  39. {
  40.  echo( "\t</tr>\n" );
  41.  $j = 0;
  42. }
  43. }
  44. // Fermeture de la dernière ligne du tableau HTML si elle n'est pas complète
  45. if ( $j > 0 )
  46. {
  47. echo( "\t</tr>\n" );
  48. $j = 0;
  49. }
  50. // Fermeture du tableau HTML
  51. echo( "</table>\n</center>" );
  52. ?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 14:35:16    

Merci, oh merci

Reply

Marsh Posté le 15-06-2001 à 14:46:52    

Et un exemple pour générer un thumbnail:
 

Code :
  1. <?php
  2. // Réupération de la taille de l'image ventilo.jpg
  3. // $size[0] = largeur
  4. // $size[1] = hauter
  5. $size = GetImageSize("ventilo.jpg" );
  6. // Calcul d'un taux de resize sachant que je veut un thumbnail de 100 de haut
  7. $taux = $size[1] / 100;
  8. // Calcul de la largeur du thumbnail
  9. $w = floor($size[0] / $taux);
  10. // Création d'une ressource image pour le thumbnail.
  11. $dst=imagecreate( $w, 100);
  12. // Création d'une ressource image de ventillo.jpg
  13. $src=imagecreatefromjpeg( "ventilo.jpg" );
  14. // Copy de $src dans $dst avec resize
  15. imagecopyresized($dst, $src, 0, 0, 0, 0, $w, 109, $size[0], $size[1]);
  16. // Ecriture de $dst vers un fichier ventilo.png
  17. imagepng($dst, "ventilo.png" );
  18. ?>
  19. // Affichage du thumbnail avec un lien vers l'image jpg
  20. <a href="ventilo.jpg"><img src="ventilo.png"></a>


 
C'est t'y pas gentil tout plein çà !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 14:52:23    

Je te donne ma technique qui me semble utile et très simple.. ( pas de code mais ce n'est pas le plus dur )
 
Structure du site :
 
RACINE
-->gallerie.php
-->view.php
-->Gallerie1
----->thumb
 
donc j'ai un fichier à la racine du site qui recoit un repertoire et un titre d'album en paramètres.
 
Ce script parcourt le répertoire et en extrait tous les noms d'images.
 
Ensuite il crée un tableau html et y insere les images. Ces images sont en fait les miniatures des grosses ( les miniatures portent le même nom) et sont prises dans le repertoire thumb du repertoire parcouru.
 
Un lien est fait vers les images du repertoire et sont affiché grace au script view.
 
 
Les avantages de cette techniques sont multiples :  
 
-On ne change que le menu du site ( qui dans mon cas est un fichier inclus),
-On upload que le repertoire ajouté et le menu,
-La mise à jour est ainsi très rapide.
 
Inconvénients : je ne vois pas !!

 

[edit]--Message édité par lord ii--[/edit]


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 15-06-2001 à 15:09:27    

Est-ce que c'est possible de générer une image dynamique (ça j'y arrive) et sans la stocker sur le dur, l'incorporer à une page HTML avec un tableau par exemple?

Reply

Marsh Posté le 15-06-2001 à 15:25:09    

shinji a écrit a écrit :

Est-ce que c'est possible de générer une image dynamique (ça j'y arrive) et sans la stocker sur le dur, l'incorporer à une page HTML avec un tableau par exemple?




Code de la page principale :

Code :
  1. <!-- Affichage du thumbnail avec un lien vers l'image jpg -->
  2. <a href="ventilo.jpg"><img src="makeimg.php?image=ventilo.jpg"></a>


Dans ce code, <img src=makeimg.php?image=ventilo.jpg>,l'immage à afficher n'éxiste pas, elle est générée dynamiquement par makeimg.php avec le code suivant :

Code :
  1. <?php
  2. // Réupération de la taille de l'image $image passé en paramètre
  3. // $size[0] = largeur
  4. // $size[1] = hauter
  5. $size = GetImageSize($image);
  6. // Calcul d'un taux de resize sachant que je veut un thumbnail de 100 de haut
  7. $taux = $size[1] / 100;
  8. // Calcul de la largeur du thumbnail
  9. $w = floor($size[0] / $taux);
  10. // Création d'une ressource image pour le thumbnail.
  11. $dst=imagecreate( $w, 100);
  12. // Création d'une ressource image de $image
  13. $src=imagecreatefromjpeg($image);
  14. // Copy de $src dans $dst avec resize
  15. imagecopyresized($dst, $src, 0, 0, 0, 0, $w, 109, $size[0], $size[1]);
  16. // Ecriture de $dst vers le navigateur !
  17. imagepng($dst);
  18. ?>


 
Et le tour est joué !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 15:56:33    

ouais mais ça c'est pas juste un lien sur une page et qd tu cliques t'as une autre page avec l'image générée?
Moi je voudrais générer une image et avoir des trucs html sur la même page?

Reply

Marsh Posté le 15-06-2001 à 16:10:13    

Dans une page html avec du code comme çà :
<img src="image.jpg">
Que ce passe t-il ?
 
Le navigateur charge la page HTML, et tombe sur une ressource de type image qu'il doit aller chercher à l'adresse donnée dans src=
A ce moment, il fait une requette HTTP vers le serveur en lui demandant: Donne moi un truc nomé image.jpg ! Le serveur ouvre le fichier chez lui et l'envoie au navigateur qui l'affiche comme une image.
 
Dans le cas :
<img src="makeimg.php?image=ventilo.jpg">
 
C'est pareil, le navigateur fait une requette HTTP vers le serveur en lui demandant: Donne moi un truc nomé makeimg.php?image=ventilo.jpg ! Le serveur à qui on demande un fichier php, refile la tâche au moteur PHP qui fait son boulôt et renvoie le résultat au verveur qui lui l'envoie au navigateur qui l'affiche comme une image car c'est en une !
 
Ce que fait makeimg.php, c'est ouvrir un fichier image dont le nom est passé en paramètre, réduire sa taille, et envoyer le résultat (qui est une image).
 
Si c'est pas clair, demande précisement ce que tu veut faire.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-06-2001 à 16:24:42    

a ouais ok, j'ai compris, désolé. En fait j'ai généré des images en PHP mais je connais pas bcp en HTML et autres, MERCI

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed