在计算获取 text/texts.getBounds() 的边界时使用 cotillion样式的字体不会给出正确的结果,它会将文本中点视为该结果矩形的 Bottom_left 点。
请在这件事上帮助我。
在计算获取 text/texts.getBounds() 的边界时使用 cotillion样式的字体不会给出正确的结果,它会将文本中点视为该结果矩形的 Bottom_left 点。
请在这件事上帮助我。
请参阅有没有办法在 ActionScript 中获取字形的实际边界框?- 它似乎描述了相反的情况(字符周围的空间过多),但相信我:这是同一个问题。检查该帖子中的建议是否可以解决您的问题。
字符设计在方格上,字体设计师有责任确保字符不接触。这是通过在设计周围留下一小块空白区域来完成的。这个盒子的左下角是它的“左下角”,或者更准确地说,是字符的原点。框的总宽度是字符的前进宽度——光标需要向右移动的量。
通常,字符周围只有空白区域。毕竟,您不会喜欢将所有字符相互捆绑在一起的字体。不过也有一些例外。例如,空格字符只有宽度——没有图像。“非间距”重音的宽度为负,因此如果您键入 ane
后跟一个 non-spacing "
,您会得到看起来是ë
. 而且,当然,让角色重叠可能是一个设计决定。
这与您的“cotillion”(“脚本”)字体有何关系?好吧,曲线和线端需要“开箱即用”——如果他们不这样做,并且盒子足够大以包含每个完整的字符,那么字符之间的间距会很大且不均匀。
显然,getBounds
只计算文本的提前宽度——而且理由很充分!在几乎所有的字体应用中,前进宽度是唯一重要的。所以getBounds
不会返回错误的值,它返回的正是它的设计目的。
要获得确切的区域,您可以尝试使用文本引擎的低级功能(FreeType具有此功能),或使用链接帖子中提到的技巧:转换为轮廓并测量这些,或在位图中绘制并检查像素覆盖率。