首页 > Linux/Unix, Php > imagettftext() [function.imagettftext]: Could not find/open font in 字体乱码不正常

imagettftext() [function.imagettftext]: Could not find/open font in 字体乱码不正常

在使用imagettftext()函数生成包含汉字的图片时,在本地测试正常,上传到空间后运行却报如下错误

imagettftext() [function.imagettftext]: Could not find/open font in……

查看官方手册:
When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the ‘path separator’ for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

说是因为如果GD库的版本过低的话,字体文件的路径中不能包含有空格。

但是我想我空间的GD库不能那么低啊,而且字体文件路径中也没有空格,然后突然想到,linux/unix主机下文件名是区分大小写的,空间内字体文件的名称是SIMFANG.TTF,而我在使用它的时候用的是小写,所以会找不到字体文件,报此错误。
还曾经遇到一个错误是字体乱码的问题,更换了一个字体就好啦。。

下边贴上我的代码吧,把汉字写到一个白色背景的图片上并写成文件t.jpeg,(该文件目录下有字体文件SIMFANG.TTF);供参考。

	$content = $_REQUEST['text'];
	$height = 300;
	$width = 300;

	$im = ImageCreateTrueColor($width, $height);
	$white = ImageColorAllocate($im, 255, 255, 255);
	$black = ImageColorAllocate($im, 0, 0, 0);
	ImageFill($im, 0, 0, $white);
	//ImageString($im, 10, 100, 120, $content, $black);
	$font = "SIMFANG.TTF";
	imagettftext($im, 20,0, 50, 150, $black ,$font,$content);

	imagejpeg($im,'t.jpeg');
	ImageDestroy($im);

亲测,正常可用。

  1. 还没有评论
评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks