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

  FORUM HardWare.fr
  Programmation
  PHP

  [TOPIC UNIQUE] Vos classes et fonctions PHP. (les votres hein).

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[TOPIC UNIQUE] Vos classes et fonctions PHP. (les votres hein).

n°526980
Hermes le ​Messager
Breton Quiétiste
Posté le 30-09-2003 à 17:13:56  profilanswer
 

Ecrire un texte avec une police ttf dans une image avec php, vous saviez faire (  :D ).
 
Par contre, ecrire un texte en choisissant l'ESPACEMENT des caractères, là c'est autre chose.
 
C'est pourquoi j'ai réalisé cette fonction que je vous livre (j'ai bien bossé pour y arriver).
 

Code :
  1. <?php
  2. function creation_texte($texte,$txt_taille,$txt_esp,$txt_lg,$txt_ht,$couleur_fd,$couleur_txt,$chemin_police,$nom_fichier,$chemin_image)
  3. {
  4. $image = imageCreate($txt_lg,$txt_ht);
  5. // --> paramètres de couleur de fond.
  6. $couleur_fd_r = hexdec(substr($couleur_fd,0,2));
  7. $couleur_fd_v = hexdec(substr($couleur_fd,2,2));
  8. $couleur_fd_b = hexdec(substr($couleur_fd,4,2));
  9. // --> paramètres de couleur du texte.
  10. $couleur_txt_r = hexdec(substr($couleur_txt,0,2));
  11. $couleur_txt_v = hexdec(substr($couleur_txt,2,2));
  12. $couleur_txt_b = hexdec(substr($couleur_txt,4,2));
  13. // --> Nombre de caractères du texte.
  14. $nbr_caracteres = strlen($texte);
  15. // --> initiation du compteur de distance du catactère en cours.
  16. $cpt_absc_carac = 0;
  17. // ----------
  18. // - boucle -
  19. // ----------
  20. for ($i = 0; $i <= $nbr_caracteres-1; $i++)
  21. {
  22. // --> taille en largeur du caractère en cours.
  23. $caractere_en_cours = substr($texte,$i,1);
  24. $dimensions = imagettfbbox($txt_taille,0,$chemin_police,$caractere_en_cours);
  25. $lg_caractere = ($dimensions[2] - $dimensions[0]) + 1;
  26. // --> définition des images des caractères.
  27. $nom_var_image = "image"."$i";
  28. ${$nom_var_image} = imageCreate($lg_caractere,$txt_ht);
  29. // --> couleur des caractères.
  30. $couleur_fd = imagecolorallocate(${$nom_var_image},$couleur_fd_r,$couleur_fd_v,$couleur_fd_b);
  31. $couleur_txt = imagecolorallocate(${$nom_var_image},$couleur_txt_r,$couleur_txt_v,$couleur_txt_b);
  32. // --> écriture du caractère.
  33. imagettftext(${$nom_var_image},$txt_taille,0,0,$txt_taille,$couleur_txt,$chemin_police,$caractere_en_cours);
  34. // --> ajout du caractère à l'image globale.
  35. imagecopymerge($image,${$nom_var_image}, $cpt_absc_carac, 0, 0, 0, $lg_caractere, $txt_ht, 100);
  36. // --> incrémentation du compteur de position.
  37. $cpt_absc_carac = $cpt_absc_carac + $lg_caractere + $txt_esp;
  38. }
  39. // -----------------------------
  40. // - ecriture du texte complet -
  41. // -----------------------------
  42. $destination = $chemin_image.$nom_fichier;
  43. imageJPEG($image,$destination,70);
  44. }
  45. creation_texte(" Salut les loutres !",11,0,500,16,"BABABA","000000","../font/font.ttf","coucou.jpg","../images/" ); 
  46. ?>


 
explication des paramètres de creation_texte(); :
 
"le texte à afficher", taille_de_la_police, espacement_entre_les_caractères, longueur_image_arrivée, hauteur_image_arrivée, couleur_hexa_fond, couleur_hexa_texte, "chemin de la police","nom du fichier résultant","chemin de l'image à récupérer (juste le chemin, sans le nom de l'image qui est le paramètre d'avant).
 
 
REMARQUE : ATTENTION : pour une raison encore inconnue, le texte doit avoir pour premier caractère un espace sinon, il y a un petit bug avec la couleur de fond (si qqu arrive à trouver pourquoi...  [:totozzz] )


Message édité par Hermes le Messager le 01-10-2003 à 10:16:35
mood
Publicité
Posté le 30-09-2003 à 17:13:56  profilanswer
 

n°527590
Hermes le ​Messager
Breton Quiétiste
Posté le 01-10-2003 à 10:15:43  profilanswer
 

Aller tiens, je la fait remonter une petite fois et je change le titre du topac.  :)

n°527786
_maximus_
Goret ptit con ^_^
Posté le 01-10-2003 à 14:01:02  profilanswer
 

Salut, j'ai testé ta source sans mettre d'espace et ca apparait bien chez moi !


---------------
Ptit con de goret je t'emmerde ^_^
n°527788
Hermes le ​Messager
Breton Quiétiste
Posté le 01-10-2003 à 14:04:28  profilanswer
 

_Maximus_ a écrit :

Salut, j'ai testé ta source sans mettre d'espace et ca apparait bien chez moi !


 
En fait j'ai eu le cas avec une seule police.  Je n'ai jamais réussi à savoir pourquoi.  :D  
 
Si tu veux je te l'envoie pour que tu testes.  :)

n°527808
_maximus_
Goret ptit con ^_^
Posté le 01-10-2003 à 14:21:06  profilanswer
 

Hermes le Messager a écrit :


 
En fait j'ai eu le cas avec une seule police.  Je n'ai jamais réussi à savoir pourquoi.  :D  
 
Si tu veux je te l'envoie pour que tu testes.  :)  


 
Yep pq pas balance ;)


---------------
Ptit con de goret je t'emmerde ^_^
n°527812
Hermes le ​Messager
Breton Quiétiste
Posté le 01-10-2003 à 14:27:14  profilanswer
 

J'ai pas ton mail  :) (je t'envoie la police dès que je l'ai)  
 
Sinon, sache que j'ai le problème uniquement avec le T (majuscule).
 
 :)


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

  [TOPIC UNIQUE] Vos classes et fonctions PHP. (les votres hein).

 

Sujets relatifs
[HTML][PHP] Form input=file et sélection de répertoire source[PHP / SQL] Petite base de donnée - etude de faisablité
[Help] Pb PHP exec( ) et java[ACCESS & PHP] Afficher des données sous forme d'historique ?
[PHP] Pseudo Frames[C++] Problèmes à la compilation avec des fonctions amies
[PHP] Generer le code html avec une classerecherche bouqin sur Php et MySql
Consctructeur de classesEasy PHP fonctionne t-il bien sous Windows XP Pro ?
Plus de sujets relatifs à : [TOPIC UNIQUE] Vos classes et fonctions PHP. (les votres hein).


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR