N'arrive pas à lire la police.

Signaler
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
-
didrocks
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007
-
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

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

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


Bonne prog ;)

win
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

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

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.
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
C'est bizar ... enfin moi je travaille avec php5 c'est peut-etre ça ...

win
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

Je sais pas, je travaille avec php 4.3.3 (version de easyphp 1.7) ...
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
éssai de mettre le chemin complet (SCRIPT_FILENAME)

win
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

euh, tu peux me donner un exemple de commande pour y parvenir stp?
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

euh, tu peux me donner un exemple de commande pour y parvenir stp?
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
en gros
$font = dirname($_SERVER["SCRIPT_FILENAME"])."/arial.ttf";


win
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

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...
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
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
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

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 !!!!
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
peut etre qu'il faut un chemin sans espaces ...

win
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

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

win
Messages postés
73
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
17 décembre 2007

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?