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:要插入图像的文本( imagefttext()函数)。
text:UTF-8 编码的文本字符串( imagettftext ()函数)。
extrainfo:
可能的数组索引  extrainfo
类型 含义
linespacing 浮动 定义绘图线间距

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM