Texte sur une image Librairie GD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Texte sur une image Librairie GD

par angebleu17 » 29 nov. 2007, 11:53

J'ai essaié avec cette fonction :
function tronque($com, $nb) 
{ 
   // partition de la chaine $com en tronçon de $nb caractères 

   $longueur = strlen($com); 
   $posA = 0; 
   $posB = $nb; 
   $mart = $com; 
   $posD=$posB; 
   while ($longueur > $posA) 
   { 
      while(substr($mart,$posD,1) != " ") 
      { 
         $posD=$posD+1; 
         if($posD>$longueur)break; 
      } 
      $posB=$posD; 
      $buff = substr($com, $posA, $posB); 
      $Texte = $Texte."$buff<br />"; 
      $posA = $posA + $posB; 
      $posB=$nb; 
      $posD=$posB; 
      $buff = ""; 
      $mart = substr($com,$posA,$longueur); 
   } 
   $buff = substr($com, $posA, $longueur); 
  
  $Texte = $Texte."$buff<br />"; 
   return $Texte; 

}

imagestring($image, 3, 35, 15, tronque ($texte,40), $couleur_texte);  //Texte 
	
Mais cela m'affiche mon texte en une seule ligne avec <br /> où la chaine doit se couper.

Comment faire pour faire un retour à la ligne ?

Texte sur une image Librairie GD

par angebleu17 » 28 nov. 2007, 14:18

Bonjour,

Sur une image j'affiche du texte, mais j'aimerais qu'a partir d'un certain nombre de caractére le texte passe à la ligne. Mais avec la librairie GD je ne sais pas comment faire, voici mon code :
header ("Content-type: image/png");  
$image = @ImageCreate (500, 40) or die ("Erreur lors de la création de l'image");  
// couleur de fond
$couleur_fond = ImageColorAllocate ($image, 255, 255, 255);  

//la couleur du texte
$couleur_texte = imagecolorallocate($image, 0, 0, 255); 

 $max=50; 
  if(strlen($texte)>=$max) 
  { 
  // Met la portion de chaine dans $chaine 
  $texte=substr($texte,0,$max);  
  // position du dernier espace 
  $espace=strrpos($texte," ");  
  // test si il ya un espace 
  if($espace) 
  // si ya 1 espace, coupe de nouveau la chaine 
  $texte=substr($texte,0,$espace); 
  // retour à la ligne ??
  $texte .= ''; ??
  }

//affiche le texte
imagestring($image, 3, 35, 15, $texte, $couleur_texte); 
J'ai essayé $texte .= '\n'; et $texte .= '<br>'; mais ça affiche \n ou <br> masi ça ne va pas à la ligne.

Comment faire ?