编程语言
首页 > 编程语言> > php 验证码图像报错无法找到/打开字体(Warning: imagettftext(): Could not find/open font)的解决方法

php 验证码图像报错无法找到/打开字体(Warning: imagettftext(): Could not find/open font)的解决方法

作者:互联网

 发生这种错误的原因:当使用低于2.0.18的GD库版本时,space字符(而不是分号)被用作不同字体文件的“路径分隔符”。意外使用此功能将导致警告消息: Warning: Could not find/open font。对于这些受影响的版本,唯一的解决方案是将字体移动到不包含空格的路径。

配置环境:wamp;

1.php的FreeType /TrueType 支持已经添加;

2.字体文件路径没有问题;

imagefttext()函数和imagettftext()函数报错的解决方法是一样的;

解决方法:使用realpath()函数把字体文件路径改为绝对路径;

$fontfile  = realpath($fontfile);

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以下内容是imagefttext() 和imagettftext ()的作用和参数介绍

版本支持(PHP 4> = 4.0.7,PHP 5,PHP 7)

imagefttext — 使用 FreeType 2 字体将文本写入图像

说明:imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] );

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

版本支持 (PHP 4, PHP 5, PHP 7)

imagettftext — 用 TrueType 字体向图像写入文本

说明:imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text ) ;

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参数介绍

image:由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
size:以磅为单位使用的字体大小。
angle:以度为单位的角度,以0度为从左到右阅读文本。较高的值表示逆时针旋转。例如,值90将导致从下到上的阅读文本。
x:x和 给出的坐标y将定义第一个字符的基点(大约是字符的左下角)。这不同于imagestring(),其中 xy定义第一个字符的左上角。例如,“左上”是0、0。
y:y坐标。这将设置字体基线的位置,而不是字符的最底部。
color:文本所需颜色的索引,请参见 imagecolorexact()
fontfile:您要使用的TrueType字体的路径。
text:要插入图像的文本。
extrainfo:
可能的数组索引 extrainfo
类型含义
linespacing 浮动 定义绘图线间距

 

标签:fontfile,文本,int,imagettftext,字体,报错,PHP,find
来源: https://www.cnblogs.com/zl0111/p/14129493.html