OVH Cloud OVH Cloud

Probleme pour afficher une image JPG

7 réponses
Avatar
xavier
Bonjour,

Je rencontre un problème d'affichage avec le script suivant :

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFCC" text="#000000">

<?php

$image_name="seiler_electrique.jpg";
$bx=150;
$by=100;

$image = imagecreatefromjpeg($image_name);
$bo=imagesx($image);
$ho=imagesy($image);

$thumbnail=imagecreate($bx,$by);
imagecopyresized($thumbnail,$image,0,0,0,0,$bx,$by,$bo,$ho);

imagejpeg($thumbnail,"vignette/tempfile");

imagedestroy($thumbnail);
imagedestroy($image);
readfile("vignette/tempfile");
unlink("vignette/tempfile");
?>

</body>
</html>

Le résultat est une longue suite de caractères dont le début est :

ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v2.0 (using IJG JPEG v62), default quality
ÿÛC

L'image sauvée sur le disque (tempfile) est tout à fait correcte si on la
lit avec un programme adhoc.

Comment faire pour que ce soit l'image qui soit affichée et non les
caractères la composant ?

Merci pour le partage de vos connaissances.

Xavier

7 réponses

Avatar
Thibaut Allender

Comment faire pour que ce soit l'image qui soit affichée et non les
caractères la composant ?


euh... en evitant de balancer le flux de l'image dans le body de la page
html?

tu ne penses pas que faire un script a part, et l'appeler via un bete
<img src="monimage.php"> fonctionnerait mieux ?

je comprends pas que de telles enormites passent ici en moderé...
d'autant plus que le probleme n'a rien a voir avec php, c'est le
principe de fonctionnement de html qui est a revoir

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
john gallet
Bonsoir,

Comment faire pour que ce soit l'image qui soit affichée et non les
caractères la composant ?
euh... en evitant de balancer le flux de l'image dans le body de la page

html?


Ou en le faisant mais avec header() aussi non ?

tu ne penses pas que faire un script a part, et l'appeler via un bete
<img src="monimage.php"> fonctionnerait mieux ?
C'est **une** solution. Vu ce qui est fait, probablement pas le résultat

souhaité.

je comprends pas que de telles enormites passent ici en moderé...


Je ne comprends pas que les HC (1) ne relisent pas la Charte plus
souvent. Oui il peut y avoir des erreurs de modération. Dans les deux
sens. Mais je rappelle que premièrement "dans le doute le modérateur
publie", et deuxièmement ce n'est pas parce que l'HC n'a pas pensé à une
solution en PHP qu'elle n'existe pas. Quand un article vous parait hors
Charte, commencez par vous demander si vraiment vous avez compris la
question.

d'autant plus que le probleme n'a rien a voir avec php, c'est le
principe de fonctionnement de html qui est a revoir


Visiblement le but du script est d'envoyer directement le fichier vers
le navigateur étant donné qu'il n'y a rien d'autre dedans. Ou en tous
cas, on peut se poser la question de savoir si ça n'en est pas le but
car ça y ressemble fort. Et pour information, le premier article de
Xavier a été refusé (par moi même) car il n'était nullement assez
précis. Cet auteur a fait l'effort d'exposer son problème, de donner
clairement son code, de le tester unitairement (le tempfile est valide
précise-t-il), il y a une solution avec PHP, la fonction header(), bref
je ne vois pas comment on pourrait refuser son article.

De manière générale, je trouve que d'aucuns des HC qui répondent aux
questions sur ce forum prennent beaucoup trop les questions au premier
degré. Cf le coup de l'échappement du $ dans
fwrite("print('$mavariable');"); : c'est bien beau de répondre à la
question brute mais si ça ne résoud pas le problème global c'est
inutile. La réponse "c'est du htlm" n'est pas complète : et les accès
concurrentiels ? Et le nettoyage automatique des fichiers générés à la
volée ?

Et enfin je rappelle que comme le précisent les CU, une discussion sur
la modération doit inclure la balise [META] dans le titre afin que les
personnes qui souhaitent l'ignorer le puisse. Merci pour eux.

a++
JG

(1) Honorables Contributeurs


Avatar
Thibaut Allender

Ou en le faisant mais avec header() aussi non ?


auquel on evite de balancer ca avant :

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFCC" text="#000000">

cette demarche tente a prouver que c'est une page, avec une image dedans
qu'on veut afficher, et pas juste une image

C'est **une** solution. Vu ce qui est fait, probablement pas le résultat
souhaité.


non, c'est un melange de tout... le mec fait une page, il veut generer
une image en php, paf, il bazarde le contenu de l'image dans la page, et
oublie que pour afficher une image en html il *faut* utiliser le tag <img>

Je ne comprends pas que les HC (1) ne relisent pas la Charte plus
souvent. Oui il peut y avoir des erreurs de modération. Dans les deux
sens. Mais je rappelle que premièrement "dans le doute le modérateur
publie", et deuxièmement ce n'est pas parce que l'HC n'a pas pensé à une
solution en PHP qu'elle n'existe pas. Quand un article vous parait hors
Charte, commencez par vous demander si vraiment vous avez compris la
question.


j'ai tres bien compris la question :)

Visiblement le but du script est d'envoyer directement le fichier vers
le navigateur étant donné qu'il n'y a rien d'autre dedans.


euh, la c'est toi qui a mal lu la question :)

cas, on peut se poser la question de savoir si ça n'en est pas le but
car ça y ressemble fort. Et pour information, le premier article de
Xavier a été refusé (par moi même) car il n'était nullement assez
précis. Cet auteur a fait l'effort d'exposer son problème, de donner
clairement son code, de le tester unitairement (le tempfile est valide
précise-t-il), il y a une solution avec PHP, la fonction header(), bref
je ne vois pas comment on pourrait refuser son article.


parce que c'est une erreur stupide de distraction
je me doute bien que xavier sait qu'il faut utiliser <img> mais son
erreur est tellement grossiere que en devient ridicule

De manière générale, je trouve que d'aucuns des HC qui répondent aux
questions sur ce forum prennent beaucoup trop les questions au premier
degré. Cf le coup de l'échappement du $ dans
fwrite("print('$mavariable');"); : c'est bien beau de répondre à la
question brute mais si ça ne résoud pas le problème global c'est
inutile. La réponse "c'est du htlm" n'est pas complète : et les accès
concurrentiels ? Et le nettoyage automatique des fichiers générés à la
volée ?


bon, ok j'ai ete un peu dur avec les HM (Honorables Moderateurs)

Et enfin je rappelle que comme le précisent les CU, une discussion sur
la modération doit inclure la balise [META] dans le titre afin que les
personnes qui souhaitent l'ignorer le puisse. Merci pour eux.


oui chef :)

a+

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
John Gallet
Re,

Ou en le faisant mais avec header() aussi non ?
auquel on evite de balancer ca avant :

<html>


Oui certes. Et ? En quoi la Charte permet-elle de refuser les articles
concernant une erreur de codage ?

cette demarche tente a prouver
Tente à prouver rien du tout ! Tu es dans le cerveau de son auteur ? Tu sais

combien de personnes différentes ont écrit le script ? Tu as bien regardé
l'email source ? Ca serait pas un exercice d'école fait en binômage ?

j'ai tres bien compris la question :)


***Seul son auteur**** te le dira.

euh, la c'est toi qui a mal lu la question :)


Qu'est-ce que tu en sais ? Tes boules sont en cristal ? Les miennes non.
Donc comme je ne peux pas savoir quel est réellement le but du script, je ne
voispas pourquoi je refuserais sa publication en bottant en touche vers
fciwa.

Cet auteur a fait l'effort d'exposer son problème, de donner
clairement son code, de le tester unitairement (le tempfile est valide
précise-t-il), il y a une solution avec PHP, la fonction header(), bref
je ne vois pas comment on pourrait refuser son article.
parce que c'est une erreur stupide de distraction



****STOP**** !!! ON PARLE DE LA RAISON DE REFUSER UN ARTICLE SUR UN FORUM
MODERE.
Si on refusait toutes les erreurs de distraction, on publierait pas grand
chose.


bon, ok j'ai ete un peu dur avec les HM (Honorables Moderateurs)



Non : tu ne comprends pas ce qu'est le rôle d'un modérateur. Un modérateur
n'a pas à se demander s'il a une raison de publier mais s'il a une **bonne
raison de refuser** vis à vis de la Charte. Et là clairement ce serait un
ABUS que de refuser CET article.

Et pendant qu'on est dans les CU je rappelle aussi :
------
5) Pourquoi tel ou tel article a-t-il été publié ?
Selon la Charte elle même, dans le doute, le modérateur publie. Donc
certaines questions vous paraîtront limite hors Charte. Si vous avez des
questions à ce sujet, relisez la Charte, puis prenez contact avec les
modérateurs ou gérez un AAD de création de fr.misc.en_charte_ou_non (bon
courage) mais ne continuez pas à polluer le forum en demandant pourquoi
tel ou tel article a été publié.
-------

a++
JG


Avatar
P'tit Marcel
Thibaut Allender écrivit
news:bvdts9$1af$:

je comprends pas que de telles enormites passent ici en moderé...
d'autant plus que le probleme n'a rien a voir avec php, c'est le
principe de fonctionnement de html qui est a revoir



Ta remarque est intéressante, et illustre un aspect de la modération plus
compliqué qu'en apparence, à savoir juger si un article est hors sujet ou
non.

Sur ce forum, beaucoup d'articles initiaux sont des questions style
'pourquoi ça marche pas'. Notre boulot de modérateur est notamment de
vérifier si cette question est bien relative au langage php (est-ce bien un
message d'erreur de php, un problème causé par un erreur dans le script
php, etc.). Le fait que l' *explication* du problème et/ou sa *solution*
soit hors php n'entre pas en ligne de compte. Sinon, on dépasserait notre
rôle en devenant une sorte d'éditeur décidant des sujets intéressants à
publier.

La charte précise les seuls cas où la *réponse* rentre en ligne de compte :
si elle se trouve par simple lecture du manuel fr.php.net ou de la FAQ. Je
précise au passage que ça ne revient pas à trier entre questions simples et
complexes : la FAQ aborde certains sujets complexes, et le manuel répond
mal ou pas à certaines questions simples.

Ici on se trouvait clairement dans le cas "problème causé par un erreur
dans le script php", donc amha John a bien fait d'accepter l'article.


c'était mes deux centimes ;-)
--
P'tit Marcel aka Geoffroy
membre de l'équipe de modération

Avatar
Thibaut Allender

La charte précise les seuls cas où la *réponse* rentre en ligne de compte :
si elle se trouve par simple lecture du manuel fr.php.net ou de la FAQ. Je
précise au passage que ça ne revient pas à trier entre questions simples et
complexes : la FAQ aborde certains sujets complexes, et le manuel répond
mal ou pas à certaines questions simples.


comme je le precisais a john par mail, il serait surement judicieux
d'ajouter une section traitant de la generation d'images en php dans la
FAQ, et notamment l'utilisation d'un script externe au script principal,
appelé via une balise <img>, et l'emploi des bons headers dans le script
qui genere l'image.

a+

--
freelance + web|system developper|designer
+ 32 496 26 75 76 + http://www.capsule.org

Avatar
CrazyCat
P'tit Marcel wrote:

Thibaut Allender écrivit
news:bvdts9$1af$:


je comprends pas que de telles enormites passent ici en moderé...
d'autant plus que le probleme n'a rien a voir avec php, c'est le
principe de fonctionnement de html qui est a revoir



[snip des 2 centimes]

Entièrement d'accord avec P'tit Marcel sur cette question de modération
(sinon mon post ne passera pas), et j'ajouterais qu'en toute logique, un
tel post DOIT passer pour se faire rétorquer que le problème n'est pas
du php mais du html. Sinon, Xavier aurait continué à chercher pourquoi
son image ne s'affiche pas, et se demanderait pourquoi un modérateur se
permet de lui dire que son courrier n'est pas valable.
Il vaut mieux qu'au su de tous il apprenne cela, ce qui en plus restera
dans une archive quelconque et sera donc disponible pour le prochain à
se poser la même question, plutôt que de le laisser se dépatouiller seul.

Je ne suis peut-être pas clair, mais j'ai essayé de me faire comprendre
(y'a un bordel dans ma tête je vous dis pas)

Et petit détail: la plupart des personnes présentes connaissent php et
html, donc fournissent la réponse même si elle est hors sujet. La
prochaine fois, on dira "tiens, va voir le minilien ..." et voila :)


--
Tout sur les eggdrops
http://www.c-p-f.org
ML @