【问题标题】:Fonts working on localhost but not on live server字体在本地主机上工作但不在实时服务器上
【发布时间】:2012-08-17 03:05:16
【问题描述】:

我正在使用imagettftext() 在图像上创建文本。我使用了 times new roman 字体,该应用程序在我的开发机器上运行良好,但在实际环境中却不行。

请告知。是不是因为我的开发者。 windows 和 live 中的机器是 linux 吗?

请帮忙

实际问题是我的 locahost 上的文本显示为“Monster”,但在实时服务器“Monster”上,这不仅是 O,而且还有其他字母......

$font = './fonts/times.ttf';    

$bbox = imagettfbbox(30, 0, $font, $word);

$x = $bbox[0] + (imagesx($src) / 2) - ($bbox[4] / 2);
$y = $bbox[1] + (imagesy($src) / 2) - ($bbox[5] / 2)+212;

imagettftext($src, 30, 0, $x, $y, $color, $font, $word);

$bbox2 = imagettfbbox(18, 0, $font, $definition);

$x = $bbox2[0] + (imagesx($src) / 2) - ($bbox2[4] / 2);
$y = $bbox2[1] + (imagesy($src) / 2) - ($bbox2[5] / 2)+245;

imagettftext($src, 18, 0, $x, $y, $white, $font, $definition);

【问题讨论】:

  • apache 是否有权读取字体所在的文件/目录?

标签: php fonts


【解决方案1】:

我遇到了同样的错误,在我的情况下,问题是字体定义扩展。是ttf,不是ttf。检查文件扩展名的大小写。

【讨论】:

  • imez 上面的想法是正确的 - 如果可以的话,我会标记它。事情是windows不关心文件扩展名的情况,但是Linux服务器会。这可能就是为什么它在本地工作而不是生活的原因。李。 - Digital Acorn Ltd.
【解决方案2】:

是的,可能是linux服务器上没有安装字体(live)

【讨论】:

  • 我在我的网站目录中使用了字体文件,并在函数中反映了它的路径
  • 尝试$font = 'fonts/times.ttf';$font = '../fonts/times.ttf';并尝试获取完整路径(echo realpath($_SERVER['SCRIPT_FILENAME']);
【解决方案3】:

很久以前我就发现了这个问题,问题出在 php 版本上,因为我看到了一个关于该问题的错误报告和快速修复

下面添加了链接

错误: http://bugs.php.net/bug.php?id=51571

解决方案:(不改变PHP版本)

http://www.php.net/manual/en/function.imagettftext.php(参见 sk89q 的解决方案)

谢谢

【讨论】:

    猜你喜欢
    • 2017-08-22
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多