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

jay*_*ubi 4 opengl freetype ios emoji

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

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

Die*_*Epp 5

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

  • 字符编码

  • 文字塑造

  • 换线

  • 字距

  • 字形替换

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

  • 等等

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

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