Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
723 connectés 

 


Dernière réponse
Sujet : [PHP] tite question.
shinji 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

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
shinji 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
Mara's dad 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.
shinji 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?
Mara's dad

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é !

shinji 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?
Lord II 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]

Mara's dad 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 çà !

shinji Merci, oh merci
Mara's dad 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. ?>

Mara's dad 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 !
FrCo 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.
duch 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
shinji Est-ce que vous pourriez montrer votre script pour que j'essaye de comprendre quelque chose SVP?
Mara's dad

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 !

duch 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.
Mara's dad

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

shinji 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?
m@nou c sur ke si c des milliers d'images inter-gallactiques en 3MPixels, le d/l va être loooooooooooooong :D ;)
Mara's dad 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]

m@nou 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>
duch 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.
Mara's dad 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. ?>

FrCo 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??

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR