N'arrive pas à lire la police.

didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007 - 14 juil. 2004 à 09:32
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

17 réponses

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

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


Bonne prog ;)

win
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
14 juil. 2004 à 10:33
de même, j'ai déjà essayé cela et ça fonctionne pas non plus :-(
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
14 juil. 2004 à 11:07
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
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
14 juil. 2004 à 14:47
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.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
14 juil. 2004 à 15:15
C'est bizar ... enfin moi je travaille avec php5 c'est peut-etre ça ...

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

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


win
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
14 juil. 2004 à 17:00
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...
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
14 juil. 2004 à 17:22
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
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
14 juil. 2004 à 18:48
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 !!!!
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
14 juil. 2004 à 18:59
peut etre qu'il faut un chemin sans espaces ...

win
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:08
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?
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
14 juil. 2004 à 19:17
il faut mettre le chemin au format dos à mon avis genre
C:\PROGRA~1\EasyPHP1-7\www\phptest\arial.ttf

win
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
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?
Rejoignez-nous