problème avec imagettftext

WRInaute discret
bonjour,

j'essaye de générer une image grace au php, cela fonctionne pour dessiner des rectangles, des lignes... mais je ne parviens pas a y insérer du texte.

le code de ma page index.php :
<img src="image.php" border="1">

le code de ma page image.php :
<? header("Content-type: image/png");
$image=imagecreate(500,500);

$blanc=imagecolorallocate($image,20,220,220);
imagefill($image,0,0,$blanc);

$couleur=imagecolorallocate($image,128,168,198);

$Box=imagettfbbox(10,0,"arial.ttf","texte");
for($index=0;$index<count($Box);$index+=2) {
$Box[$index]+=10;
$Box[$index+1]+=50;
}

imagettftext($image,10,0,10,50,$couleur,"arial.ttf","texte");
imagepng($image); ?>

PS : le fichier arial.ttf se trouve bien dans le même dossier que mes pages.

D'ou vient le problème ?

Merci :)
 
WRInaute impliqué
Manuel PHP a dit:
Cette fonction requiert la bibliothèque GD ainsi que la bibliothèque FreeType.

Vérifie que ton hébergeur a installé cette bibliothèque (dans le phpinfo, sous la section gd par exemple : FreeType Support enabled


Sinon tu peux passer par la fonction imagestring et charger une police gdf cette fois.

Tu trouvera un logiciel freeware permettant la conversion de TTF à GDF : http://phptrust.org/GDFontGenerator.exe

A noter que ça sera moins beau que du TTF, ça dépends ce que tu veux faire :) (c'est aussi plus léger en mémoire par contre)
 
WRInaute discret
le phpinfo() me donne : FreeType Support enabled

cela signifie que la bibbliothèque FreeType est supportée ou qu'elle est installée ?

Sinon ou est ce que je peux la télécharger ? Merci !
 
WRInaute impliqué
Dans ce cas c'est que la bibliothèque est activée.

Il se peut que le problème soit du à un problème de localisation de ton fichier ttf.

En effet, le manuel php indique ce problème et donne la solution d'inclure temporairement dans le path dédit aux polices gd, le chemin absolu du répertoire où est situé ton script.

Pour cela, ajoute au préalable ces directives :

Manuel PHP a dit:
<?php
// Définission de la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));

// Nom de la police à utiliser (notez l'absence de l'extension .ttf)
$font = 'SomeFont';
?>

Plus d'infos ici
 
WRInaute discret
ca marche, merci :D

le but est en fait d'afficher dans une image les résultats d'une requete mysql.

Lorsque je fais :

$requete=mysql_query("select monchamp from matable");
while($resultat=mysql_fetch_assoc($requete)) {
<img src="image.php?champ=<? echo $resultat["monchamp"] ?>">
<? } ?>

cela me crée autant d'images que de résultats rétournés par ma requête.
Ou dois je placer ma requete pour afficher tous mes résultats dans une seule image.

PS : j'ai essayé de placer la requete dans mon fichier image.php, cela ne semble pas être bon...

Merci !
 
WRInaute impliqué
Soit:
- tu te connectes à mysql dans le fichier image.php et là tu affiches directement.
- tu concatènes les résultats, puis tu affiche l'image comme ci-dessous :

Code:
$requete=mysql_query("select monchamp from matable");
$theresultat = NULL ;
while($resultat=mysql_fetch_assoc($requete)) {
  $theresultat .=  $resultat["monchamp"] ;
}

<img src="image.php?champ=<? echo $theresulat;  ?>">
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut