Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4686 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°294248
nikau
Posté le 26-01-2003 à 12:10:37  profilanswer
 

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
mood
Publicité
Posté le 26-01-2003 à 12:10:37  profilanswer
 

n°294307
nikau
Posté le 26-01-2003 à 15:00:20  profilanswer
 

up, personne ?

n°294309
kadreg
profil: Utilisateur
Posté le 26-01-2003 à 15:04:10  profilanswer
 

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 !
n°294373
raph93
Posté le 26-01-2003 à 18:08:03  profilanswer
 

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...
n°294381
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-01-2003 à 18:12:31  profilanswer
 

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
n°294392
nikau
Posté le 26-01-2003 à 18:42:03  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[PHP] Image PNG generé en boucle, ca ne marche pasUn IDE alternatif à JBuilder qui génère une Interface Graphique ?
transparencePhénomène bizard avec un Browser Gecko Powered (Mozilla, Netscape...)
Modifier et sauvegarder un document word ouvert dans un browsercomment empecher une page de figurer dans l'histo du browser
Expert de XFree , comment faire de la transparence ?AVI généré par NanDub > impossible de relire avec AVIStreamRead
[algo] fonction qui genere une ligne 3d aleatoire...faire une recherche textuel adns un doc PDF à partir d'un browser??
Plus de sujets relatifs à : png généré par php, transparence et browser


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)