使用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>
我正在使用一个自定义的.ttf字体,可以在这里找到。在Ubuntu中,我可以打开该文件并作为有效的字体文件使用。我也尝试了其他字体,但结果相同。
我正在使用安装有apache2、php5、freetype6和php5-gd的Ubuntu 10.04 LTS 32位版本。我还尝试对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
tff
- Pekkawmt
过滤器时遇到了问题,PHPThumb会在调用imagettftext之前验证字体文件是否存在并且可读。我可以补充说明的是,imagettfbox也会出现相同的错误。有没有其他好的方法来调试这里发生了什么? - Jon Skarpeteigis_readable()
或is_file()
返回什么? - Pekka