使用example from php.net我收到警告,图片无法正确呈现。我提供了.ttf文件的完整路径,如下所示:/var/www/public/myfont.ttf
PHP Warning: imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Could not find/open font in <phpfile>
我使用的是here自定义.ttf字体。我可以在Ubuntu中将文件打开为有效的字体文件。我也尝试了其他字体,结果相同。
我正在使用Ubuntu 10.04 LTS 32位,安装了apache2,php5,freetype6和php5-gd。我还尝试使用ttf文件chmod 777文件和文件夹,结果相同。
如何使用自定义ttf字体文件使示例工作?
*编辑:我正在使用的代码:
<?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);
?>
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
测试is_file
和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
答案 0 :(得分:8)
您可以尝试插入:
putenv('GDFONTPATH=' . realpath('.'));
在第一个imagettftext
前面,只是为了确保它不是路径问题。
<强>更新强>
如果您使用的是fc-cache
等字体缓存,请不要忘记刷新它,例如:
sudo fc-cache -f -v
答案 1 :(得分:0)
尝试在与php文件相同的目录中移动ttf文件,并将 $ font 更改为
$font = 'UnmaskedBB.ttf';
答案 2 :(得分:0)
升级发行版,包括所有php包解决了问题
答案 3 :(得分:0)
https://www.php.net/manual/en/function.imagettftext.php
注意:仅当PHP在带有freetype支持(--with-freetype-dir = DIR)的情况下编译时,此功能才可用
sudo apt-get install freetype *