Je cherche un peu d'aide...

Résolu
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011 - 24 juil. 2007 à 23:22
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011 - 25 juil. 2007 à 15:42
Bonjour à tous,

Soucieux de fournir un script en un seul fichier, je cherche à créer une image en PHP sans utiliser les fonctions ImageXXXX() mais en utilisant les octets d'une image déjà existante.

Voilà : J'ai une (petite) image et l'ai chargée dans debug pour en connaître les octets.
J'ai obtenu "89 50 4E 47 0D 0A .... 42 60 82"

Je sais que ça ne doit pas être sorcier mais je galère pour trouver une fonction du style make_img() qui me retournerait les octets de l'image pour l'utiliser dans une balise telle que :
echo "";

J'avais pensé à ranger ces octets dans un tableau, puis de les concaténer un par un dans une chaine qui serait retournée :

function make_img() {
   $img = array(0x98, 0x50, 0x4E, etc..., 0x82);
   $nboctets=count($img);
   $image = "";
   for($n=0; $n<$nboctets; $n++) {
        $image .= sprintf("%c",$img[$n]);
   }
   return $image;
}

Ca marche pas et je rame pour trouver... :o(
Quelqu'un a-t-il une idée ? Merci

PS: Je ne cherche pas à obtenir à bon compte un truc tout fait mais je sèche lamentablement et je cherche un peu d'aide...

15 réponses

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 13:59
C'est normal que ça marche pas... comme ça tu essaye d'écrire le code image brut DANS la page wap...
le navigateur sait pas gèrer ça... il faut que tu fasse ça comme ça:

et ta page php en mode 'make_image' ne doit exécuter que ça:

function make_img() {
   $image = '....les_codes....';
   header("Content-type: image/png");
   echo base64_decode($image);
}

[pas d'autres sorties du moin....]

vala ;)

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami!
<hr size="2" width="100%" />
3
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 15:30
Tu peux éviter ça ^^ et mets cette partie en début de script, tu fais une vérification si tu dois exécuter la sortie d'image et tu ajoute un die(); à la fin de ta fonction de sortie d'image; après le echo base64_decode().... comme ça dès que tu veux l'image ben le scrpt n'est qu'exécuté jusque là.... bon après honnêtement le serveur sentira pas masse de différence entre charger 30 ou 120k de script en mémoire et de l'exécuter si ce sont toujours des fonctions de base comme base64_decode ^^

Bon si t'y tiens je veux bien ton code ^^ on sait jamais ce u'on peut y dénicher

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami! <---
<hr size="2" width="100%" />
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 juil. 2007 à 01:05
Salut

tu veux recoder gd ?? pourquoi faire ?

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 09:44
Ben euh...... j'ai aussi un peu de mal à suivre pourquoi tu veux faire ça, mais bon;
première chose à faire c'est déjà de définir le mime-type de ta sortie (ptetr que c'est déjà fait ^^ )

sinon ben gette voir un coup d'oeil à http://phpthumb.sourceforge.net/index.php?source=phpthumb.bmp.php..... c'est le seul truc que j'ai trouvé qui (apart un 2° exporteur .ico) marche sans GD (ou autre) en php........
pour tout le projet phpThum(): http://phpthumb.sourceforge.net/

vala!

@plus

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton mailleur ami! <---
<hr size="2" width="100%" />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 12:10
C'est plus par défi que par nécessité.


J'ai fait un script wap qui gère un carnet de contacts et qui peut leur envoyer des mails. Gérer c'est un bien grand mot : ajout, suppression, listage des noms/adresses mail, c'est tout.


Jusqu'ici, il n'y a qu'un seul et unique fichier qui crée lui-même et modifie (ajout suppression) le fichier de contacts, qui crée les différentes cartes du deck et qui fait appel à lui-même pour, en fonction des paramètres, "gérer" ces contacts ou envoyer les mails.


Le menu principal, c'est :
> contacts
> mails


Ca fait un peut court (téléphone oblige :), je sais... Mais pour "égayer un peu", y'a un petit logo qui symbolise une appli de messagerie.


Mais je voudrais continuer sur le défi de tout faire en un seul fichier. D'où l'idée d'intégrer à ce script les octets qui constituent l'image existante afin que celui-ci puisse recréer lui-même ce logo avec une fonction qu'on appellerait en cas de besoin.


J'ai le contenu de l'image sous forme d'octets hexa. Je cherche le moyen de les regrouper sous forme de contenu binaire à afficher (afficher l'image, quoi !)


Si avec votre aide, on y arrive pas, j'en concluerai que c'est impossible, mais ça sera pas la fin du monde :) C'est juste un défi.
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 12:13
ok maintenant j'ai compris!!! attends un peu j'ai quelquechose dans mes arches ;)

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami! <---
<hr size="2" width="100%" />
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 12:27
Ai pas retrouvé ce que j'avait fait, mais jlai vite reprogrammé :)

Donc voici le code pour afficher l'image:
<hr size= "2" width="100%" />header("Content-type: image/gif");
$image = 'R0lGODlhKwAoANUtAK+ytdTW2L/BxPn5+u/v8LS3unuAgunq6/r6+tXW2K+yturr7MnLzrm8v7/CxcTGyd/g4t/g4fT09e/w8bq8wOTl5sXHydnb3Nrb3bW3u8/Q0+Xm58rMzvX19t7f35yfoc3P0KyvsKSnqb2/wMXHyO7v79XX1+bn54OHic/R0/b396qtsf///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC0ALAAAAAArACgAAAb/wJZwKEQsiMikcslsQRQrBUS44EBXUQsE0ewSO1gAFmLBms+KBNfbTKwerMeZQWDZCZcCVrFhMyErAHJYBXV2h3YVeiscfksUZw0DiJR2AVgUa45ETysFk5WVFWKZm0QLWIahlQSkmpsOZ4KqqyytKxamLRhnZgAStYcEWAmbCFABoBINKwHBhxFYE44bnpSXzs92cg6Obs4gBh8s2Np2A2IQHQtHbc0sIQYG5O8VDIuCB5WXZ41MZRFYfJDHQsAKDcywCBAgZkVAROgUYmkSSx8JAyJYNFwhoAKiUSv0IdLwhkEUiis8qhhR4oAZBh5GkEDkEg6iYWamMEnBEdEg/wEe5BkAgUhPJTEO2jHpAKXAhQMmsUiIJ88EIoOVDPbxwqvXigYChXq4umLfimJeJmB5IIDBJQ1hDaCghPXaWT9QDLl0JkIeUURYKpnE4IfDCgZ29trxcILSMAGVmCntggrApAFfa114h0gCllddMji0YxBYKGa0BjBT4MBBgmldABVI9BXUTWuHVHtd4QA0kmOjWZiUBJHZQ1t6AEQ4cCACA1JdeFlmMUAOgAAHJETQAzmRmEKUJIiZ3GJBAgutzcC1tJEQMAmDiGdd0Q5Bgiu7RVK/wFbAhQEERHVYLWJMM4FonjDw1AEDRCDGdczZIUFz95yRTSibZSBELAXod3fTIrvtUYYnHgqTTgtqTbfKAAah4YAFCbSzAIId5cZPN+X1VAsBi6jBhH2+CJAQLmukqBkmsHXRQQIIYqLTEFAcd4gELVrgWxcTsHOlGwCoMkAADRGmSxcIQAKABgE8h4UDSY7ZRJm9UPCkm2xskEACGLRJJxNBAAA7';
echo base64_decode($image);
<hr size="2" width="100%" /> Et le code pour 'faire' l'image:
<hr size ="2" width="100%" />echo base64_encode(file_get_contents('ton_fichier.gif'));
<hr size="2" width="100%" />
En gros tu fais un premier script avec le code pour 'faire' l'image, tu donne le bon chemin pour accèder à l'image. Tu copie la sortie dans $image du premier script... et ça marche... si tu veux afficher autre chose qu'un .GIF faudra changer le mime-type...

Vala ça devrait être ce que tu voulais ;)

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami! <---
<hr size="2" width="100%" />
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 12:47
:o))
Merci. Je vais essayer. Pas forcément dans le quart d'heure qui suit pas je te promets de t'informer du résultat...
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 13:54
J'arrive pas.
Si je fais comme t'as dit, pas de pb, ça marche :


<?php
$image = '....les_codes....';
header("Content-type: image/png");  // C'est une image PNG
echo base64_decode($image);
?>


Si je fais comme ça :


<?php
function make_img() {
   $image = '....les_codes....';
   header("Content-type: image/png");
   echo base64_decode($image);
}
?>
... bla bla wap
" alt="Logo" />


J'ai l'emplacement rectangulaire où aurait dû s'afficher l'image et l'affichage de tous les codes qui sont d'ailleurs différents de ceux du source, ce qui me parait normal vu que l'affichage est base64_décodé


J'ai l'impression que c'est dû au fait qu'ayant déjà écrit du bla-bla avant l'affichage de l'image, l'envoi du header("Content-type: image/png"); lors de l'appel de la fonction passe pas car je crois que rien ne devrait avoir été envoyé avant le header("..."), non ?


Ca reste un mystère...
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 14:22
OK. J'vais essayer... J'te tiens au courant et à tout hasard, quelque soit le résultat, merci... :o)
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 15:08
Plein de merci. Ca marche nickel-chrome !
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 juil. 2007 à 15:09
De rien :)

Jreçois un crédit loool, je rigole

Bonne journée!

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et ça démo
---> Google est ton meilleur ami! <---
<hr size="2" width="100%" />
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 15:11
Plein de merci. Ca marche nickel-chrome !
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 15:25
Si tu veux, je t'envoie le script, ça va t'amuser car c'est pas forcément optimisé vu que pour n'afficher que l'image il recharge complètement le fichier, mais c'était juste pour essayer d'arriver à tout mettre dans le même fichier... :o)
0
rethenor Messages postés 48 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 9 mai 2011
25 juil. 2007 à 15:42
je te l'envoie comment ? en MP ?
0
Rejoignez-nous