Harfbuzz 和 Freetype 在垂直文本中渲染水平文本

问题描述 投票:0回答:1

我正在使用 Harfbuzz 和 Freetype 来渲染文本。在韩语中,当某些竖排文本中有一些英文文本时,应将其水平渲染然后旋转 90 度。像这样:

正确渲染

因此,为了尝试实现这一目标,我使用 Harfbuzz 塑造了两段文本。一个是垂直的,一个是水平的。然后,我将水平文本旋转了 90 度。这就是我得到的:

我得到了什么

您可以看到问题是水平文本与垂直文本不一致。这是因为竖排文本有一个负值

x_offset
,以便所有字符完美对齐。如果我忽略
x_offset
这就是我得到的:

忽略x偏移

现在两条线段已正确对齐,但是现在垂直文本当然不正确,因为我忽略了

x_offset

如果我可以反转

x_offset
的方向,那么结果就是我想要的。不幸的是,我不知道 freetype 字体的属性或 harfbuzz 中是否有与我需要在相反方向执行
x_offset
的宽度相对应的属性。

我可能只是错过了一些简单的东西,但有人知道我该怎么做吗?

fonts freetype harfbuzz
1个回答
0
投票

我认为正确的做法是从水平文本中减去

descender
字体大小。本质上,由于我们垂直渲染文本,因此使用下降部分是没有意义的。

© www.soinside.com 2019 - 2024. All rights reserved.