在图像上显示中文字符

时间:2017-05-19 07:19:00

标签: php imagettftext

我正在尝试使用PHP在图像上显示一些中文字符。代码如下所示。

<?php
    $im = imagecreatetruecolor(60, 20);
    $white = imagecolorallocate($im, 255, 255, 255);
    $grey = imagecolorallocate($im, 128, 128, 128);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 60, 20, $white);
    $text = '你好';
    $font = 'simsun.ttc';
    imagettftext($im, 10, 0, 5, 15, $black, $font, $text);
    imagepng($im, 'pic.jpg');
    imagedestroy($im);
?>

我可以在我的电脑上正确显示这两个汉字但我无法在我的服务器上显示它们。当我输入以下命令行时,出现警告消息。

$ php font.php
PHP Warning:  imagettftext(): Could not read font in /usr/share/nginx/html/model/font.php on line 9

我在互联网上进行了一些搜索,发现有些人认为imagettftext可能无法处理值大于127的ASCII码。关键是我可以在我的电脑上显示它们。我想知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我发现了问题。两件事:首先,你需要使用正确的字体文件;第二,您需要使用字体文件的完整路径。即,我应该使用

$ font ='/ usr / share / nginx / html / model / fireflysung.ttf';

不会

$ font ='fireflysung.ttf';