【发布时间】:2015-02-01 13:10:53
【问题描述】:
我正在尝试使用 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 文件所在的文件夹中。
【问题讨论】:
-
Arial 不是拼写为“Arial”吗?
-
@dmikester1 我刚刚更正了拼写,还是一样。
-
说明说要跳过字体上的扩展名,不确定是否重要
-
虽然,查看示例,似乎每个人都在使用该扩展程序。有人确实提到了这一点,像这样在前面贴一个./:“$myfont =”./coolfont.ttf”;
-
@dmikester1 做出的改变仍然没有改变。
标签: php image browser font-size imagettftext