在imagettftext()之前映射字符?

时间:2011-12-11 19:47:52

标签: php imagettftext

我正在建立一个带字体预览的免费字体网站。由imagettftext()生成的许多字体字符都是方形框,因为它们没有被映射。

我查看dafont.com这样的网站,并正确预览所有字体。我非常怀疑他们是在使用每种字体并确保使用正确的字符。

所以我的问题是,是否有PHP脚本或函数可以执行此操作:

1)打开一个ttf文件,根据字符串查找映射的字符。 EX:我想将名称'foobar'作为文本传递给imagettftext(),但如果字体foobar只映射大写字符,我必须将FOOBAR传递给imagettftext()。

2)如果返回的字符串中的任何字符未在字体中映射,请找到下一个映射字符并将其替换为该字符。

基本上,我正在尝试避免所有未映射的字体框出现在我的网站上。

谢谢大家!

1 个答案:

答案 0 :(得分:1)

我使用dafont.com中的几种字体进行了测试。未映射的字符通常使用imagettftext显示为空白(无)。我试图通过输入˰来访问字体边界之外的字符。但是,即使在dafont.com上,也有一些字体中包含这些方块; 例如this Flower Ornaments fontthis 4yeo Sport font

我的猜测是那些基本字符是强制性的,因此被替换为空框。

我对dingbats和文字字体的个人建议是:

  1. 标志:显示dingbats字体的静态文本。这就是dafont.com的作用,无论您更改示例文本多少,字体样本都将保持不变,因此除非您单击以查看映射详细信息,否则您将永远不会看到这些框。

  2. 文字字体:如果您确定该字体中包含标准英文字母,请打印“快速棕色狐狸跳过懒狗”对于每种文字字体。它将使用户了解字母表中每个字母的设计。