如何使用freetype在iOS上呈现表情符号字符?

时间:2015-04-04 11:00:31

标签: ios opengl emoji freetype

FreeType支持自2.5版以来的表情符号字符。我想通过FreeType渲染表情符号然后在OpenGL中使用它,所以这里不会使用UIKit API。但是,我不想,也不是我没有许可证,用我的应用程序发送“Apple Color Emoji.ttf”文件。

所以问题是: 有没有办法在iOS设备上加载系统表情符号字体文件? 是否有任何Objective-c或c / c ++ API可以访问系统表情符号字体文件?

1 个答案:

答案 0 :(得分:5)

首先,让我们澄清一个误解。您不必使用UIKit在iOS上使用系统库渲染字体。您可以使用Core Text(具有常规旧C接口)将文本直接呈现到屏幕外缓冲区,并将该缓冲区用作OpenGL纹理。这将自动处理您自己正在做的非常大量的工作量:

  • 字符编码

  • 文字整形

  • 换行

  • 字距

  • 字形替换

  • 字体选择(粗体,斜体等)

  • 等等

Core Text实际上是FreeType + HarfBuzz + Pango + ICU的替代品。我只想直接使用FreeType,如果我想做一些Core Text不能轻易做到的事情,比如将字形渲染成精灵表并使用它来绘制文本,或者如果我想跨平台共享代码。

现在,如果您确信自己花费额外的几周时间,那么您必须解析/System/Library/Fonts/CGFontCache.plist文件以找到所需字体的位置。请参阅:Location of the fonts on the iPhone?