imagejpeg(); J'veux les pixels...pas le code ! - PHP - Programmation
Marsh Posté le 10-11-2005 à 18:06:06
ReplyMarsh Posté le 10-11-2005 à 18:07:09
2xyo a écrit : Tout ça est inclu dans un autre fichier ? |
Vi, c'est inclu via un include !
Marsh Posté le 10-11-2005 à 19:07:32
donc c'est normal que ça foire....
Pour afficher t'a miniature, i; faut dans le code HTML insérer une balise <img> avec pour adresse d'image, l'adresse de la page de ton script.
Marsh Posté le 10-11-2005 à 20:04:39
2xyo a écrit : donc c'est normal que ça foire.... |
J'ai pas bien saisi...Je pensais que l'image générée venait du cache !
Bon, pour résoudre le pb du header, je fais en sorte qu'il puisse être rechargé soit :
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $timestamp).' GMT');
Maintenant, j'ai toujours le code de l'image et non son interprétation ??
Marsh Posté le 10-11-2005 à 20:28:41
Si je mets un echo "<IMG src=\"$t\">"; c'est encore pire ! (genre 2000 lignes de hiéroglyphes !)
Vais devenir chèvre, là ?!
Marsh Posté le 10-11-2005 à 20:29:57
2xyo a écrit : donc c'est normal que ça foire.... |
Tu peux me refaire l'explication avec une ligne de code ? Je pige pas bien la démarche...
Marsh Posté le 10-11-2005 à 23:30:54
ReplyMarsh Posté le 11-11-2005 à 01:01:37
shoshenk a écrit : Tu peux me refaire l'explication avec une ligne de code ? Je pige pas bien la démarche... |
Faut le faire avec 2 fichiers. Le index.php qui contiendrait <img src=miniature.php />
Je vois pas pourquoi ça marche pas déja ... Pê tente de remplacer
Code :
|
par
Code :
|
Je l'ai fait cet aprèms justement en modifiant le script fournit sur http://developpeur.journaldunet.co [...] ture.shtml
Marsh Posté le 11-11-2005 à 10:15:17
Ricco a écrit : Faut le faire avec 2 fichiers. Le index.php qui contiendrait <img src=miniature.php />
|
J'avais essayé de remplacer l'echo...sans succès !
Par contre, je vais tester le code de ton lien ; sous forme de fonction, ça risque d'être interprété correctement...et puis, y'a apparement pas le problème d'entête !
Marsh Posté le 11-11-2005 à 10:36:02
Ils ne l'ont pas mis mais perso j'ai rajouté un header dans mon script.
Mais quand tu dis que ça t'affiche du code ... tu veux dire du php ou le binaire de l'image ? Dans ce cas là t'es sur que y'a pas d'autres messages d'erreur php au milieu qui t'empêchent d'afficher l'image ?
Marsh Posté le 11-11-2005 à 11:26:11
Dans l'absolu, un fichier php peut retourner de facon brute une image, sans devoir passé par un parser html qui s'occuperais de lancer le script php. Pour cela, il suffit juste de redirigé le flux des données de l'image (la fonction echo tout simplement) vers le navigateur, et bien sure, ne pas avoir omis les en-têtes Content-Type.
NOTE : Un espace avant <? ou après ?> pose problème quand à l'interpretation des données, attention.
Low
Marsh Posté le 11-11-2005 à 13:18:49
lowcraft a écrit : Dans l'absolu, un fichier php peut retourner de facon brute une image, sans devoir passé par un parser html qui s'occuperais de lancer le script php. Pour cela, il suffit juste de redirigé le flux des données de l'image (la fonction echo tout simplement) vers le navigateur, et bien sure, ne pas avoir omis les en-têtes Content-Type. |
J'comprends vraiment pas
Code :
|
ça renvoie toujours le binaire de l'image !!!
Marsh Posté le 11-11-2005 à 13:46:30
shoshenk a écrit : J'comprends vraiment pas
|
Ca vient surement d'aileurs alors ...
Et quand tu sauvegarde la page dans un fichier jpeg ça donne bien l'image que tu veux ?
Marsh Posté le 11-11-2005 à 14:09:38
ReplyMarsh Posté le 11-11-2005 à 14:21:28
T509 a écrit : Un exemple bien commenté : |
J'ai "nettoyé" les blancs : Toujours le binaire...
Je vais faire une page à part pour ce code et l'inclure dans ma page principale !
Marsh Posté le 11-11-2005 à 16:02:43
Ok, j'ai pris exactement le code de phpteam et ça marche !!!
En fait, il faut appeler l'image générée comme ceci :
<IMG src='miniature.php'>
Je vais tester un <IMG src='$thumbnail'>
Marsh Posté le 14-11-2005 à 16:45:27
shoshenk a écrit : Ok, j'ai pris exactement le code de phpteam et ça marche !!! |
ça marche toujours pô ! J'abandonne ; je vais me contenter de "resizer" l'image en plus petit...
Les problèmes de header déjà envoyés (en l'occurence session_start dans mon cas) sont bloquants !
Marsh Posté le 14-11-2005 à 17:26:39
shoshenk a écrit : Ok, j'ai pris exactement le code de phpteam et ça marche !!! |
heu $thumbnail c'est pas l'image elle-même dans ton cas ? <img> c'est du html, c'est le navigateur qui s'en occupe. C'est censé contenir le nom du fichier dans lequel est l'image, donc ta page PHP. Pas le contenu de l'image elle-même.
Quand tu fais <img src="miniature.php"> le browser va afficher l'image générée par miniature.php
Quand tu fais <img src="$thumbnail"> le browser va recevoir <img src="ÿØÿàJFIF......."> c'est à dire le contenu de l'image plutôt que son nom
Marsh Posté le 15-11-2005 à 11:02:40
antp a écrit : heu $thumbnail c'est pas l'image elle-même dans ton cas ? <img> c'est du html, c'est le navigateur qui s'en occupe. C'est censé contenir le nom du fichier dans lequel est l'image, donc ta page PHP. Pas le contenu de l'image elle-même. |
Yep...Suis d'accord !
Si je fais appel à une page qui génère ma miniature, j'ai un problème de header (une session est lancée dans la page principale)...
Marsh Posté le 15-11-2005 à 11:10:09
Je vois pas le rapport
Marsh Posté le 15-11-2005 à 15:36:34
antp a écrit : Je vois pas le rapport |
Moi non plus, mais c'est ce qui fait que le binaire de l'image s'affiche au lieu de l'image !!! (et je pense que c'est dû au header qui ne se charge pas)
Marsh Posté le 15-11-2005 à 15:39:46
T'as deux choses :
- la page php qui génère du html qui contient le <img src="...">
- la page php qui génère l'image
j'ai l'impression que tu mélanges les deux d'après les quelques bribes de code postées, et surtout quand tu dis
Citation : |
Marsh Posté le 15-11-2005 à 17:06:21
Citation : Ce soir, je vais acheter du lait et du produit vaiselle, mais attention, les deux dans la même bouteille. Mais Y a pas de crainte à avoir, je ferais le tri chez moi. |
Zut, alors, moi, je sais pas séparer les deux si on me les met dans la même bouteille.
Ben en fait, le navigateur, il est comme moi, le navigateur si tu lui mélanges du texte et le contenu d'un fichier d'image il saurat pas t'afficher l'image vu qu'il ne peut pas deviner où commence et finis une image et où commence et finis du simple texte. C'est pour ça qu'il faut lui envoyer séparément la page html et le texte. Dans la page html, t'utilises la balise qui permet d'indiquer qu'on veut afficher une image à cet endroit là de la page (la balise <img> ) et dans cette image, tu lui indiques que l'image se trouves à telle adresse (adresse du script qui génére et envoie l'image et rien que l'image, aucune autre texte)
Marsh Posté le 16-11-2005 à 00:40:15
J'avais bien compris antp et omega2...
Ce qui me pose réellement des pb, c'est le header !
Dans ma page "image" (celle qui contient l'image générée), il y a un header type jpeg...
Dans ma page "html" (celle qui affiche la source), il y a un session_start()
C'est là que ça cloche et vu que les deux sont indispensables...je bloque !? (voilà pourquoi je me contente maintenant de resizer l'image d'origine)
Marsh Posté le 16-11-2005 à 10:51:58
Je vois pas le problème. Y'a un header différent pour chaque fichier php, ça pose pas de pblm.
Marsh Posté le 16-11-2005 à 11:38:52
shoshenk a écrit : |
bah c'est deux pages différentes, je vois pas le problème... rien ne t'empêche de faire un session_start dans la page "image" en plus du header jpeg si t'en as besoin
Marsh Posté le 10-11-2005 à 17:59:33
Bonsoir,
Je sèche sur un truc particulier :
Je génère une miniature "à la volée"...mais ça affiche du code au lieu de l'image
script :
header("Content-Type: image/jpeg" );
list($width, $height, $type, $attr) = getimagesize("$pic" );
echo "Type : $type<br>";
if($type == "1" )
{ $img_in = imagecreatefromgif($pic); }
if($type == "2" )
{ $img_in = imagecreatefromjpeg($pic); }
if($type == "3" )
{ $img_in = imagecreatefrompng($pic); }
$img_out = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
$t = imagejpeg($img_out);
echo $t;
Fin du script
Message édité par shoshenk le 10-11-2005 à 20:07:32
---------------
=== [ACH] M42 // Tamron SP // Matos de studio === Achats Matos PC ===