2013-10-05 124 views
2

我尝试通过imageloadfont函数加载字体。当我运行脚本我收到错误:GD尝试加载字体时出错

gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully 
PHP Warning: imageloadfont(): Error reading font, invalid font header 

什么会导致此问题?

ENV:

Ubuntu的13.04 64位

PHP 5.4.9-4ubuntu2.3

回答

1

我找到了解决办法。问题不在imageloadfont函数中。

我试图加载字体(.ttf)到imageloadfont并将其设置在图像上。现在我使用imagettftext来加载自定义字体并将该字符串放在图片上,而不是使用图像字符串函数。

2

我在尝试随机使用系统的.ttf文件之一时看到此错误。 PHP手册示例具有.gdf字体文件。

我的图片尺寸为1013 x 638(646294像素),身份证尺寸为300 dpi的图像。

在我的情况下,PHP_INT_MAX的值为2147483647,内存限制设置为128 MB。

转换后的新的字体文件工作(.gdf格式字体)

字体转换器:www.wedwick.com/wftopf.exe

来源:http://www.animeviews.com/article.php?ID=263