N'arrive pas à lire la police.

Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
- - Dernière réponse : didrocks
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
- 14 juil. 2004 à 19:21
Bonjour!
Voilà ma source (prise de phpfrance.com):

<?
Header("Content-type: image/png");
$size=$_GET['size'];
$text = $_GET['text'];
$font = ".\arial.ttf";
// on obtient la grandeur du texte
$box = imagettfbbox($size,0,$font,$text);
$dx = abs($box[2]-$box[0]);
$dy = abs($box[5]-$box[3]);
$xpad=9;
$ypad=9;
// crée l'image avec ses coordonnées
$im = imagecreate($dx+$xpad,$dy+$ypad);
// création des différentes couleurs
$blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
// dessin d'un rectangle
ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black);
ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,$white);
//on écrit le texte
ImageTTFText($im, $size, 0, (int)($xpad/2)+1, $dy+(int)($ypad/2), $black, $font, $text);
ImageTTFText($im, $size, 0, (int)($xpad/2), $dy+(int)($ypad/2)-1, $white, $font, $text);
// création finale en png
ImagePNG($im);
// destruction de la ressource
ImageDestroy($im);
?>

Le problème est qu'il ne trouve pas la police alors que je l'ai copié dans le rep de mon .cpp
Tout fonctionne si je fais, par exemple:
$font = "c:\windows\fonts\arial.ttf";
Mais bon, c'est pas top du tout.
Quelqu'un a une idée?
Merci
Afficher la suite 

17 réponses

Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
Oui c'est simple tu as fais une erreur de syntaxe, c'est pas
$font = ".\arial.ttf";

mais
$font = "./arial.ttf";


Bonne prog ;)

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
de même, j'ai déjà essayé cela et ça fonctionne pas non plus :-(
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
J'ai éssayé chez moi et ça marche ... peut-être que tu as mal configuré ton serveur pour qu'il puisse créer des images?

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
J'ai installé gd et il affiche correctemetn les images puisque tout fonctionne si je fais $font = "c:\windows\fonts\arial.ttf"; .. le problème est donc dans la reconnaissance de la police . et je ne vois pas quoi configurer.
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
C'est bizar ... enfin moi je travaille avec php5 c'est peut-etre ça ...

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
Je sais pas, je travaille avec php 4.3.3 (version de easyphp 1.7) ...
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
éssai de mettre le chemin complet (SCRIPT_FILENAME)

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
euh, tu peux me donner un exemple de commande pour y parvenir stp?
Commenter la réponse de didrocks
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
euh, tu peux me donner un exemple de commande pour y parvenir stp?
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
en gros
$font = dirname($_SERVER["SCRIPT_FILENAME"])."/arial.ttf";


win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
toujours pas, et je ne comprends pas car si je fais:
echo dirname($_SERVER["SCRIPT_FILENAME"])."/arial.ttf";
J'obtiens bien:
C:/program files/easyphp1-7/www/phptest/arial.ttf
Ce qui est bien le chemin vers arial.ttf qui est ici présent !!!!
C'est à devenir fou...
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
Ouais et bien je sais pas alors c'est vraiment bizzare....
éssai sur un autre serveur ...
enfin moi je sais plus quoi dire lol ...

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
apparemment, même un chemin absolu ne fonctionne pas:
$font = "C:\Program Files\EasyPHP1-7\www\phptest\arial.ttf";
ne fonctionne pas alors que
$font = "C:\WINDOWS\fonts\arial.ttf";
fonctionne !!!!
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
peut etre qu'il faut un chemin sans espaces ...

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
apparemment, le problème vient de là:
$font = 'C:\temp\arial.ttf';
fonctionne. Mais comment je peux tester alors? vu que je suis obligé de mettre mes fichiers pour tester dans le rep www de easyphp?
Commenter la réponse de didrocks
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
0
Merci
il faut mettre le chemin au format dos à mon avis genre
C:\PROGRA~1\EasyPHP1-7\www\phptest\arial.ttf

win
Commenter la réponse de winwarrior
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
0
Merci
non, j'avais déjà essayé le chemin dos... mais je préférerai garder le chemin relatif (bien sûr, pour lorsque je l'uploaderai sur le serveur, je n'ai rien à modifier)..
Autre chose étrange:
$font = 'C:\temp\arial.ttf'; fonctionne comme dit précédemment alors que

define(cste,'C:\temp');
$font = cste.'\arial.ttf';
ne marche pas alors qu'un echo affiche bien C:\temp\arial.ttf !!! je pense que les 2 pbs sont liés, non?
Commenter la réponse de didrocks