FreeType 从 2.5 版本开始支持 emoji 字符。我想通过 FreeType 渲染表情符号,然后在 OpenGL 中使用它,所以这里不会使用 UIKit API。但是,我不想,也没有许可证,在我的应用程序中发送“Apple Color Emoji.ttf”文件。
那么问题来了: 有没有办法在iOS设备上加载系统表情符号字体文件? 是否有任何 Objective-c 或 c/c++ API 可以访问系统表情符号字体文件?
最佳答案
首先,让我们澄清一个误解。您不必使用 UIKit 在 iOS 上使用系统库来呈现字体。您可以使用 Core Text(它具有常规的旧 C 接口(interface))将文本直接渲染到屏幕外缓冲区中,并使用该缓冲区作为 OpenGL 的纹理。这将自动处理非常庞大的工作,否则您将自己完成这些工作:
字符编码
文字整形
断行
字距调整
字形替换
字体选择(粗体、斜体等)
等等
Core Text 确实是 FreeType + HarfBuzz + Pango + ICU 的替代品。只有当我想做一些 Core Text 做不到的事情时,我才会直接使用 FreeType,比如将字形渲染到 sprite 表中并使用它来绘制文本,或者如果我想跨平台共享代码。
现在,如果您确信自己花额外的几周时间来完成它是值得的,那么您将不得不解析 /System/Library/Fonts/CGFontCache.plist
文件以找到位置你想要的字体。请参阅:Location of the fonts on the iPhone?
关于ios - 如何在 iOS 上使用 freetype 渲染 emoji 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29445603/