-1
/*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...

4

3 回答 3

1

尝试使用

"./Tondu_beta.ttf"

当字体和php文件都在根目录中时为我工作

于 2013-10-10T01:10:22.543 回答
0

直接来自文档

字体文件

您希望使用的 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';
?>
于 2012-07-23T17:42:38.887 回答
0

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

于 2012-07-23T17:34:35.230 回答