本文主要是介绍imagefttext()函数字体文件路径的问题 Could not find/open font 或Invalid font filename,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天,学习php的验证码的时候,遇到一个问题。
<?php
$i=imagecreatetruecolor(500,500); //空白画布,默认背景色黑色
$white=imagecolorallocate($i,255,255,255); //给画布分配颜色,此处为白色
imagefill($i,0,0, $white); //imagefill(image, x, y, color)
$red=imagecolorallocate($i, 255, 0, 0);
imagefttext($i, 24, 30, 90,90, $red, "D:\Apache\hsl\GD\msyh.ttf","hello"); //此处需使用绝对路径
header("content-type:image/png"); // 让浏览器按照图像执行D:\Apache\hsl\GD\
imagepng($i);
?>
imagefttext($i, 24, 30, 90,90, $red, “D:\Apache\hsl\GD\msyh.ttf”,“hello”);
我最开始使用的是相对路径,报错,如图所示
后来改成了绝对路径,能够正常显示了。
原本我以为这个问题解决了,可我觉得把网页文件和字体文件msyh.ttf放在同一个目录下不太好,所以在当前文件夹下建了一个子文件夹fonts,把msyh.ttf放到了fonts文件夹下,同时上面的代码中,字体文件路径相应地修改为D:\Apache\hsl\GD\fonts\msyh.ttf,结果又提示如下错误
下图是目录结构,我的路径没写错吧。
为什么呀?字体文件必须要和php文件在一个文件夹下才可以吗?后来终于找到解决办法了,使用函数realpath后,问题解决,不再报错。
imagefttext($i, 24, 30, 90,90, $red, realpath("fonts\arial.ttf"),"hi");
这篇关于imagefttext()函数字体文件路径的问题 Could not find/open font 或Invalid font filename的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!