imagettftext impossible d'ouvrir le fichier de police
À l'aide de la exemple de php.net je reçois un avertissement, et l'image ne s'affiche pas correctement. J'offre un chemin d'accès complet à l' .ttf fichier comme ceci: /var/www/public/myfont.ttf
PHP Warning: imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Could not find/open font in <phpfile>
Je suis en utilisant un custom .police ttf trouvé ici. Je peux ouvrir le fichier fine dans Ubuntu validité du fichier de police. J'ai également essayé d'autres polices, avec le même résultat.
J'utilise Ubuntu 10.04 LTS 32 bits, avec apache2, php5, freetype6 et php5-gd installée. J'ai aussi tenté de faire un chmod 777 sur le fichier et le dossier avec le fichier ttf, avec le même résultat.
Comment puis-je obtenir de l'exemple de travail en utilisant un custom police ttf fichier?
*Edit: Le code que j'utilise:
<?php
//File is: /var/www/public/test.php
//Apart from $font variable, it's copy-pasted from php.net
//Set the content-type
header('Content-Type: image/png');
//Create the image
$im = imagecreatetruecolor(400, 30);
//Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
//The text to draw
$text = 'Testing...';
//Replace path by your own font path
$font = '/var/www/public/UnmaskedBB.ttf';
//Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
//Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
//Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Sortie de phpinfo();
[gd]
GD Support enabled
GD Version 2.0
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.11
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.42
WBMP Support enabled
Tests is_file
et is_readable
:
$font = realpath('./').'/UnmaskedBB.ttf';
echo "Font: ".$font; ///var/www/public/UnmaskedBB.ttf
echo "Is file? ".is_file($font); //1
echo "Is readable? ".is_readable($font); //1
- Pouvez-vous montrer le code exact? Je ne peux pas voir quelque chose de mal, mais à des fins d'exhaustivité
- Êtes-vous sûr à 100%, c'est la police du chemin d'accès exact? En tenant compte de la casse?
- Et il semble y avoir une faute de frappe:
tff
- Oui. Au départ, je suis tombé sur le problème à l'aide de PHPThumb
wmt
filtre, avec PHPThumb vérifier que le fichier de police existe et peut être lu avant d'appeler imagettftext. Je pourrais ajouter que imagettfbox donne la même erreur. Est-il un autre bon moyen de déboguer ce qui se passe ici? - étrange. Ce n'
is_readable()
ouis_file()
retour? - Quelle est la version de votre bibliothèque GD ?
- Pouvez-vous essayer avec une essayé-et-vrai de la police comme
Arial.ttf
? - En utilisant la police arial.ttf à partir de: alxr.usatlas.bnl.gov/lxr/source/atlas/Tools/AtlasDoxygen/fonts/... a donné le même résultat avec d'avertissement n'a pas pu ouvrir
Vous devez vous connecter pour publier un commentaire.
Vous pourriez essayer d'insérer:
en face de la première
imagettftext
, juste pour s'assurer que c'est pas un problème de chemin d'accès.Mise à JOUR
Dans le cas où vous êtes à l'aide de caches de polices comme
fc-cache
, n'oubliez pas d'actualiser, par exemple:Essayez de déplacer le fichier ttf dans le même dir que votre fichier php et le changement $police à
/
en place? Dans tous les cas, le même avertissement est présentLa mise à niveau de distribution, y compris tous les paquets php résolu le problème