How to convert a text string into a set of polylines in iOS?
我有一个字符串例如" Hello world"和字体名称,例如"信使"。 我需要获取代表此字符串的折线数组。 这些折线将在OpenGL场景中渲染。
我的意思是我需要将每个字母转换为一个或多个2D折线。
如何在iOS(Objective-C或C ++)中执行此操作
您可以使用"核心文字"从文字和字体获取路径。有一个称为
您应该看一下有关"低级文本呈现"的文章。您也可以查看本文的示例代码,以了解如何获取文本的路径(并使用Core Animation对其进行描边)。
您仍然必须将路径转换为折线(因为路径可能包含圆弧和曲线,而折线只是点列表)
FreeType库支持加载各种字体文件(TrueType,PostScript等)。 FreeType引擎可以加载字体并渲染到位图,但是它还可以返回详细的字形信息。
您可以使用
API参考:
-
FT_Outline_Decompose()
请注意,如果要渲染不经常更改的大块文本,则在每一帧渲染和填充一系列曲线会非常昂贵。通常的解决方案是选择一个点大小,将所有需要的字形渲染为纹理,然后使用纹理图集将字符串渲染为四边形。
一些有用的信息发布在此处有关字体的OpenGL常见问题之一中,尽管它们也谈到使用FreeType。纹理图集技术值得一读:
- iPhone SDK是否有不错的OpenGL文本绘制库?