我正在尝试使用PHP创建图像。该图像应该有文字。我只能使用 imagestring 函数显示文本,但此函数只允许字体大小达到5.事实证明,这对我来说太小或太小了。然后,我了解到您可以使用 imagettftext 函数在图像上找到所需大小的文本。这个功能对我来说根本不起作用。我在研究这个问题时,在另一个stackoverflow问题中发现了这段代码。
<?php
$image = imagecreate(400,300);
$blue = imagecolorallocate($image, 0, 0, 255);
$white = ImageColorAllocate($image, 255,255,255);
if(!isset($_GET['size'])) $_GET['size'] = 44;
if(!isset($_GET['text'])) $_GET['text'] = "Hello, world!";
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
$font = 'arial.ttf';
imagettftext($image, $_GET['size'], 15, 50, 200, $white, $font, $_GET['text']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
当我打电话时,我在浏览器上看到有趣的面孔和奇怪的字符。这段代码有什么问题,还有哪些其他选项可用于增加PHP中的字体大小?
更新 在对此进行了大量研究之后,我已经尝试了针对此问题在线提供的所有建议和答案,但仍然无法显示图像。我在字体类型字符串前添加了 ./ 。我甚至将Microsoft字体类型从我的计算机上传到服务器,但结果仍然相同。
更新 我确实忘了提到我确实将字体类型arial.ttf从我的计算机传输到服务器到我所有php文件所在的文件夹中。
答案 0 :(得分:1)
来自文档
fontfile您希望使用的TrueType字体的路径。
取决于PHP使用的GD库版本,何时使用 fontfile不以一个前导开头,然后会附加.ttf 文件名和库将尝试搜索该文件名 沿着库定义的字体路径。
删除.ttf或添加绝对路径