PHP GD and True Type Font


PHP GD and True Type Font

我对TTF和PHP GD 2.x有一个奇怪的问题。

我有一个尺寸为45px的TTF在顶部位置100。文本的顶部与(图像中的)一行完全对齐。

但是,如果我更改字体的大小,文本将不再与行对齐。

在大小为20px的情况下,我需要将文本的顶部值减去5,如果字体大小为300px,我需要在顶部值上加56,以获得完美的对齐。

更糟糕的是,如果我更改字体(另一个TTF),它是相同的,但有不同的数字。

我错过什么了吗。为什么我需要根据文本的大小更改文本的最高值,以及为什么一种字体的数字与另一种字体不同?????

如果一切正常的话。如何获取公式以使文本始终在线上对齐。

这里有一些数字。。。。

Font 1 . size 20 = top 95, size 45 = top 100, size 300 = top 156.
Font 2 . size 20 = top 91, size 193 = top 100, size 300 = top 105. 

我数学不太好。。。。可悲的

感谢

票据

您最好使用Imagick,它可以让您查询字体的度量。您可能需要字体的x-height或cap-height值,这是您无法从GD.中获得的

一旦你得到了这些值,你就可以正确地计算出排列所有东西所需的垂直偏移。