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");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值