|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() marcel marie monnierretraité, ex chef de projets en informatique Inscription : juillet 2005 Messages : 383 ![]() |
Bonjour,
En fait ce sont deux questions indépendantes : 1) Png transparent Il semble que la transparence des images .png , dans l'instruction ne soit pas prise en compte. Est-ce normal? Comment faire? 2) utilisation du code html avec du code PHP de GD J'ai un script en deux séquences qui crée -des images avec GD -et effectue un traitement avec HTML Les deux donnent séparément un résultat correct. Si les deux sont dans le même script, les lignes HTML sont écrites en commentaires à l'écran. Voici la fin et le début de chacune des séquences : Code :
Code :
header("Content-type: image/png"); //la ligne qui change tout ! Je vous remercie. Bonne journée. Marcel Marie |
||
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() Développeur informatique Inscription : décembre 2008 Messages : 344 ![]() |
1) Il est normal que ça ne soit pas pris en compte.
La fonction imagecopymerge() permet d'appliquer un filtre alpha lors de la fusion, ce qui rend la fonction bien utile pour ajouter un filigrane par exemple, mais ne gère toujours pas le canal alpha des images fusionnées. En revanche, si tu te rends sur la page d'aide de cette fonction et que tu descends jusqu'aux commentaires, des solutions sont apportées pour gérer le canal alpha des images png. 2) pas comprendre ! Tu essayes de générer une page web et les images qu'elle contient dans un même script ? De mémoire, il existait une méthode pour écrire le "code" de l'image directement dans le script HTML, mais ce n'est pas la bonne façon de faire. Il te faut 2 pages, une pour ton script HTML, l'autre pour ton image. Chaque script ne peut recevoir qu'un et un seul header, évidement, puisque le header est une sorte d'introduction qui dit de quoi on va parler... et on ne peut pas rajouter une nouvelle introduction au milieu d'une dissertation ! page1.php : Code :
<?php echo '<img src="./image.php" />'; ?> Code :
|
||
|
|
00
|
|
|
#3 | |
|
Membre actif
![]() marcel marie monnierretraité, ex chef de projets en informatique Inscription : juillet 2005 Messages : 383 ![]() |
Citation:
Comment enchainer ces deux choses sans avoir à relancer la page web séparément ?. C'est vraiment "casse-pied" que dans du PHP on ne puisse pas lancer directement du .php ou de l'htm. Cela me parait toutefois un peu curieux que l'on ne puisse pas changer de "header". Au fait quelle est l'écriture du "header" pour un php "normal" sans GD. Je vous remercie. MarcelMarie |
|
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Développeur informatique Inscription : décembre 2008 Messages : 344 ![]() |
- Soit tu créés toutes tes images, tu les enregistres dans un repertoire et les appels normalement dans une balise html <img>
- soit tu génères tes images "à la volée", c'est a dire que tu mets dans le lien de l'image l'adresse d'un script PHP qui construira l'image a chaque appel (visiblement la solution qu'il te faut). Toute autre méthode est mauvaise ! Lancer du HTML dans du PHP ne veut rien dire... PHP sert à générer du HTML (entre autre, puisqu'en l'occurrence, on s'en sert aussi générer des images). En revanche, on peut lancer du .php dans du php (include(), require(), eval()), mais cela n'a rien à voir avec ton problème. Bref, je pense que tu n'as pas compris comment cela devait marcher (la 1er réponse que je t'ai donnée est toujours bonne). Donc étape par étape, ce qu'il se passe : 1) Tu appels ta page PHP qui génère du code HTML (travail d'apache sur le serveur) 2) Le serveur envoie le code HTML au client qui l'interprète et l'affiche (travail du navigateur coté client) 3) Lors de l'interprétation du HTML, le navigateur trouve des balises <IMG> indiquant ou télécharger l'image à afficher ( la propriété src de la balise img). En l'occurence, l'url de l'image est http://monserver.com/image.php (cf mon 1er exemple) 4) Le serveur (Apache) reçoit l'ordre d’exécuter image.php... Il l'execute et génère ton image qu'il renvoie au client... 5) le navigateur du client affiche l'image renvoyé par le serveur Pour le header, non, on ne peut pas le changer une fois qu'il a été envoyé... Header, ça veut dire "entête"... La transmission des données du serveur vers le client étant séquentielle, une fois envoyé, on ne peut en aucun cas le modifier. C'est tellement vrai que si tu laisses juste un espace blanc entre le début de ton fichier php et la balise <?php, il t'enverra une erreur. Et pour finir, je ne connais pas la teneur exact du header par defaut (mais ça doit être du genre Content-type: text/HTML). |
|
|
00
|
|
|
#5 |
|
Membre actif
![]() marcel marie monnierretraité, ex chef de projets en informatique Inscription : juillet 2005 Messages : 383 ![]() |
Tout cela est intéressant certes.
On peut toutefois dire que le PHP est assez déroutant. Je peux effectivement créer mes images avec GD, à part, avant de lancer le script PHP et HTML qui les traite. Je dois aussi pouvoir choisir, selon la date, dans le script complet, de traiter l'une ou l'autre des parties car, pour moi, les images restent "valables" tout le mois calendaire. On peut quand même être étonné * que dans le script de création d'image l'instruction echo ; ne se comporte pas comme dans du PHP normal * que la séquence HTML soit vue/lue comme du texte et affichée à l'écran alors que ce n'est jamais le cas lorsque le fameux header de GD n'est pas utilisé. Bon, je vais faire avec, c'est-à-dire contourner l'obstacle. Je vous remercie. Bon week-end. Marcel Marie |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() marcel marie monnierretraité, ex chef de projets en informatique Inscription : juillet 2005 Messages : 383 ![]() |
Bonjour,
Eh oui, cette histoire de header() m'a turlupiné. Celle-ci : Code :
header("Content-type: image/png"); //la ligne qui change tout ! Je me suis souvenu qu'il y a un certain temps j'avais réalisé ceci : http://www.touteladanse.com/danse_affiche.php Quelle différence? Aucune!! tout simplement ce dernier programme n'a pas le "fameux" header() et n'affiche rien directement à l'écran via la fonction Code :
imagepng($imr); // affichage image à l'écran CQFD. Mon problème est donc résolu. Bonne journée. Merci. Marcel Marie |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com