Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2007, 17h44   #1
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Par défaut Afficher un jpg sans passer par un fichier jpg

Bonjour,

Voilà, je compte utiliser la JpGraph pour un proj, mais je regardais la méthode stroke() à qui on peut ne passer aucun paramètre (affichage direct de l'image générée à l'écran), un nom de fichier (création de l'image dans un fichier) ou un image handle, qui j'ai cru comprendre était géré par la GD2.

C'est sur cette dernière option que je voudrais me rabatre dans la mesure ou je ne souhaite pas créé de fichier temporaires...

Alors créer le fichier et l'envoyer avec un header, je sais faire, mais pour ce qui est de passer d'un handle GD2 -> balise <img> html, je vois pas comment faire...

Donc en résumé, la question est "comment peut on afficher une image GD2 que l'on vient de générer en mémoire dans une balise html <IMG> sans passé par un fichier temporaire ?

Merci

Edit : j'ai quand même idée de créer une page PHP qui génère le fichier et l'envoi avec un header type-contant img/jpeg, et appeler <img src="./myfile.php?param=xxxx">

C'est viable ? y'a plus simple ?
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 18h09   #2
Membre confirmé
 
Inscription : juin 2005
Messages : 171
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2005
Messages : 171
Points : 214
Points : 214
Bonjour,

Cette methode est viable !

En revanche, je ne saurais te dire s'il y a plus simple, mais cette méthode l'est deja non ?
aurelman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 18h26   #3
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Je suppose qu'elle est bonne... J'espere que le fait de passer un .php en src à la balise img va pas poser de problème (je me voit pas refaire la config des extensions apache).

Je ne l'ai pas mise en oeuvre car je me heurte à un autre problème : le passage de paramètre...

La méthod GET ne me parait en effet pas idiqué compte tenu de la taille du parametre (2 tableau de plusieur milliers de points)... LA solution serait donc de refaire mon calcul de point dans la page appelée, mais à 4 ou 5 secondes le traitement de création de la liste de point, ça me fait mal de le faire 3 fois (3 images à affichés)... surtout qu'il faut ajouter à ça le temps de traitement de jpgraph...
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 12h45   #4
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
passe tes parametre en session, mais c'est moyen...
__________________
deY!
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 16h28   #5
Membre confirmé
 
Inscription : juin 2005
Messages : 171
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2005
Messages : 171
Points : 214
Points : 214
Bonjour,

Pour le *.php dans le src de la balise img y a pas de soucis.
Le navigateur fait une requete HTTP GET sur la valeur de src et affiche le résultat retourné : donc du moment que ta page php retourne un contenu image valide avec l'entête qui va bien "Content-type: image/jpg" il ne devrait pas y avoir de problème.

Quant aux paramêtres, est tu obligé de faire le calcul avant et apres ?
Ne peux-tu pas les faire juste au moment de retourner l'image ?

Sinon, sauvegarde les après le premier calcul : soit en session comme préconisé par deY!, soit dans un fichier. (Mais les sessions ne me parraissent pas trop mal).
aurelman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2007, 20h57   #6
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Bha le problème est justement d'être obligé de faire le calcul avant et après avec cette méthode...

En fait, l'appli récupère un gros tat de données de la BDD, effectue un certain nombre de calcul dessus (interpolation, calcul médiane, variance, equart type voir analyse syntaxique quand il s'agit de texte au lieu de points...) et affiche les résultat textuelles ainsi que les graph qui y correspondent.

Le graph généré par l'appli est une image (que je ne souhaite pas stocké sous forme de fichier temporaire).

Le problème qui se pose à moi est de faire que l'image non stockée physiquement soit l'affichée sur ma page en dessous des résultats textuels.

Je doit donc faire pour afficher l'image un fichier PHP indépendant qui renvoi le MIME qui va bien, et mettre le lien vers se fichier dans mon <img>.

Le problème du src=ect... c'est que j'ai que le GET, et mes paramètres sont bien trop importants pour ce type de passage de paramètre. Donc la solution consisterai à refaire le calcul dans le fichier PHP image.

Ensuite, l'idée de la $_SESSION est effectivement pas idiote :p

Je vais donc m'y essayé...
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2007, 22h23   #7
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
Et en crée ton image avec GD2 ?
De toute façon si tu génére ton image avec les valeurs que tu calcul, tu es obligé d'effectuer tes calculs, puis d'envoyer ces resultats...

Mais vu ce que tu dis, je crois que tu as une libraire qui permet de genérer des histogramme et toute sorte de chose avec les valeurs que tu lui transmet, enfin je dis ça parceque tu abordes les sujet d'ecart type et mediane... par contre j'ai oublié le nom de cette libraire
__________________
deY!
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2007, 13h55   #8
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
passes tes infos récup de la bdd dans l'url de ton fichier php qui genere l'image. Ainsi, tu n'aura pas à faire les calculs avant ET apres mais juste apres
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 05h19   #9
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
L'image sort deja en GD2, mais impossible d'afficher du GD2 dans la page HTML sans passer par un fichier temporaire ou un header qui fera disparaitre tout le HTML... Enfin je crois, si je me treompe, dite moi :p

Pour les calcul statistiques, je dev ma propre lib. La librairie sert juste a convertir / afficher mes valeurs sous forme d'image (gd2).

Et comme je disais, que ça soit les calculs préliminaire ou le création de l'image GD2 via la lib d'affichage, les calculs sont long !

L'idée de base était donc de faire le calcul statistiques une 1er fois sur ma page principale, et une 2eme fois + création image sur le fichier appelé par <img> dans ma page principle... ce qui fait fait bien faire 2 fois le calcul statistiques.

Ensuite, je pense que la réponse à été donnée, il suffit de passer les résultats de mes calculs et mes champs de points via SESSION. J'espere juste que ça va pas être trop lourd :p
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 07h48   #10
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
fait un cache. Tu enregistre dans un fichier tes résultats graphiques et si ils sont trop vieux, tu refais le calcul.
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 11h13   #11
Membre confirmé
 
Inscription : juin 2005
Messages : 171
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2005
Messages : 171
Points : 214
Points : 214
Bonjour,

Citation:
Envoyé par Korko Fain
passes tes infos récup de la bdd dans l'url de ton fichier php qui genere l'image. Ainsi, tu n'aura pas à faire les calculs avant ET apres mais juste apres
Le soucis qui peut se poser avec cette technique, c'est qu'il me semble que la taille d'une url est limitée, donc s'il y a beaucoup de paramêtre à passer, ça va bloquer...
aurelman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 10h36   #12
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
En même temps tu ne passes que du texte en session, ou des tableaux... mais rien de trés gros.
__________________
deY!
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2007, 19h57   #13
Invité régulier
 
Inscription : avril 2005
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 7
Points : 6
Points : 6
Bonjour,
j'utilise jpgraph et le même principe <img src="mongraph.php" /> pour générer mon mon image, ca marche juste pour pouvoir enregistrer l'image (click bouton droit enregistrer sous) sous Firefox, il ajout l'extension a la fin genre mongraphe.php.jpg mais IE$ le nom sera mongraph.php. , l'utilisateur doit changer a chaque fois l extension,

que pensez vous de l'idée de générer l'image en utilisant Stroke(img/tmp/mongraph.jpg) par un appel AJAX de "mongraphe.php"
puis mettre <img src="mongraph.jpg" /> ?

y a pas un moyen plus simple pour regler ca ?

Merci énormément
mshiesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 00h53   #14
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
Est-ce que mongraphe.php contient bien les bon header ? Pcq je ne pense que cela vienne du navigateur.
__________________
deY!
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 15h56   #15
Invité régulier
 
Inscription : avril 2005
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 7
Points : 6
Points : 6
Merci de votre réponse.

oui exactement, il contient les bon header crée par jpgrphe,
j arrive a afficher l image, mais c juste la fonctionalité "enregistrer sous" qui me pose problème, y a toujours le nom du fichier .php qui s affiche comme nom par defaut de l image
mshiesh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2007, 16h27   #16
Membre éclairé
 
Avatar de deY!
 
Inscription : avril 2006
Messages : 403
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 403
Points : 358
Points : 358
transmet le nom de la photo dans les header... parceque en faite il garde le nom du fichier php par default
Code :
header('Content-disposition: attachment; filename='.basename($fichier));
__________________
deY!
deY! est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h04.


 
 
 
 
Partenaires

Hébergement Web