png généré par php, transparence et browser

png généré par php, transparence et browser - PHP - Programmation

Marsh Posté le 26-01-2003 à 12:10:37    

Bonjour,
 
Je ne suis pas sûr que ça soit le bon forum pour ma question, mais j'ai remarqué qu'il y avait des adeptes du png ici, donc comme ma question concerne ce format, je poste ici.
 
Voilà, je veux générer des textes dans des fontes autres que les fontes par défaut des navigateurs. Je fais ça par php via la génération d'images. Pour pouvoir mettre ces fontes partout, je veux un fond transparent. Avec les pbs de format propriétaire, php ne propose pas de génération de gif (format avec lequel je suis le plus habitué, je ne fait pas de prosélytisme) mais png. Ok pour le png donc.
 
Voilà le code php pour la génération de l'image/texte :

Code :
  1. <?php
  2. $texte=urldecode($texte);
  3. $texte=stripslashes($texte);
  4. $boite=imageTTFbbox($taille, 0, "$DOCUMENT_ROOT/fonts/$style", $texte);
  5. $ligne=$l-3;
  6.   $im = ImageCreate($boite[2]+4,$h);
  7. if ($etat=='off') {
  8.   $jaune_savage=ImageColorAllocate($im, 152,146,97);
  9.   } else {
  10.   $jaune_savage=ImageColorAllocate($im, 221,213,151);
  11.   }
  12. $blanc=ImageColorAllocate($im, 255, 255, 255);
  13. $noir=ImageColorAllocate($im,0,0,0);
  14. imagefill($im,0,0,$noir);
  15. $noir, "$DOCUMENT_ROOT/fonts/$style",$texte);
  16. ImageTTFText($im, $taille, 0, 1, $h-5, $jaune_savage, "$DOCUMENT_ROOT/fonts/$style",$texte);
  17. imagecolortransparent($im,$noir);
  18. Header("Content-Type: image/png" );
  19.   ImagePNG($im,'',99);
  20.   ImageDestroy($im); 
  21. ?>


 
je passe une variable texte (par exemple 'News';), le type de font que je veux, la taille de la fonte et la hauteur de l'image (la longueur est calculée). Je rends le fond noir tranparent. Un appel à la fonction donne :

Code :
  1. <img href="formattitrenews.php?texte=News&taille=12&h=16">


 
Un exemple donne ça : http://loopkin.hf.free.fr/images/boutons/news_off.png
 
là normalement, selon le browser que vous utilisez, vous allez voir ou non le fond noir (je veux de la transparence je rappelle). Bizarrement, c'est sur IE que ça marche le mieux alors que je me suis laissé dire que c'était celui qui posait le plus de pb au niveau gestion de la transparence du format png.
 
Est-ce que j'ai utilisé une fonction spéciale IE pour faire ma transparence ? ( la fontionc imagecolortransparent )
 
Quelqu'un connait le pb ?


Message édité par nikau le 26-01-2003 à 12:12:16
Reply

Marsh Posté le 26-01-2003 à 12:10:37   

Reply

Marsh Posté le 26-01-2003 à 15:00:20    

up, personne ?

Reply

Marsh Posté le 26-01-2003 à 15:04:10    

Nikau a écrit :


Est-ce que j'ai utilisé une fonction spéciale IE pour faire ma transparence ? ( la fontionc imagecolortransparent )


 
Non, c'est simplement que tu utilise une transparence simple (une couleur fait transparence) et pas un canal alpha (transparence à n% sur chaque pixel). Et ça, IE arrive à le gérer sans problèmes.
 
Maintenant, avec quel browser tu as les pb de transparence, et sur quelle plateforme (et nb de couleur de l'écran aussi).


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 26-01-2003 à 18:08:03    

Antp est le Pro du PNG sur HFR  :o


---------------
Nothing can stop me, I'm never satisfied, I take what i want, refuse to be denied...
Reply

Marsh Posté le 26-01-2003 à 18:12:31    

Si c'est une image en 8 bits (256 couleurs) ça doit passer sans problèmes sur tous les browsers version 4 ou +, sauf peut-être Netscape 4


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-01-2003 à 18:42:03    

en fait, je ne sais pas trop quel type de png le php génère, il faudrait que je me renseigne.
 
Merci Kadreg pour la précision. Y a t'il moyen de jouer avec l'alpha en php ? Faudra que je me penche la dessus.
 
antp, en fait, ça a l'air de fonctionner sur IE et consort (crazy browser également) le dernier Netscape aussi. Mais pas avec Opera (version 6.05, je ne sais pas avec la dernière). Tout autre paramètre équivalent par ailleurs.
 
Ca m'a un peu étonner qu'Opera merdouille avec ce que j'ai pu lire sur ton lien à propos du png justement.
 
Bon, l'un dans l'autre, c'est pas catastrophique non plus, mais j'aimerai bien que ça marche sur tout. Surtout que c'est Opera que j'utilise le plus...
 
je vais regarder du côté Alpha, mais là, c'est avec IE que ça va merder si je ne m'abuse :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed