/*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...
答案 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';
?>