imagettftext()无效

时间:2012-07-23 17:30:36

标签: php

/*create watermark*/

    // Create the image
    $im = imagecreate(460, 50);

    // Create some colors
    $grey = imagecolorallocate($im, 230, 231, 232);
    $dark_grey = imagecolorallocate($im, 128, 130, 133);

    // The text to draw
    $text = "foobar";

    // Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

$font = 'Tondu_beta';



    // Add the text
    imagettftext($im, 15, 0, 15, 35, $dark_grey, $font, $text);


    $wm_w = imagesx($im); //get width
    $wm_h = imagesy($im); //get height

    $wmresource = $im; //watermark resource

//imagejpeg($wmresource);

/*end watermark*/

字体文件是Tondu_Beta.ttf。上面的代码在我的本地机器上运行得很好,但是在上传到实时服务器后它只给了我一个灰盒子。这有什么不对?谢谢^^

更新:我记得它给了我这个错误:Could not find/open font bla.bla..bla...

3 个答案:

答案 0 :(得分:1)

尝试使用

"./Tondu_beta.ttf"
当font和php文件都在根目录

时,

为我工作

答案 1 :(得分:0)

错误不言自明。您的实时服务器没有安装有问题的字体(Tondu_Beta.ttf)。将字体安装到服务器上,或选择服务器确实具有的字体。

答案 2 :(得分:0)

直接来自doc

  

fontfile

     

您希望使用的TrueType字体的路径。

     

根据PHP使用的GD库版本,当fontfile不以前导/开头时,然后.ttf将附加到文件名,库将尝试沿库定义的字体路径搜索该文件名

     

当使用低于2.0.18的GD库版本时,空格字符而不是分号用作不同字体文件的“路径分隔符”。无意中使用此功能将导致警告消息:警告:找不到/打开字体。对于这些受影响的版本,唯一的解决方案是将字体移动到不包含空格的路径。

     

在许多情况下,字体与使用它的脚本位于同一目录中,以下技巧将缓解任何包含问题。

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>