【问题标题】:How to use freetype to render emoji character on iOS?如何在 iOS 上使用 freetype 渲染 emoji 字符?
【发布时间】:2015-04-04 11:00:30
【问题描述】:

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

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

【问题讨论】:

    标签: ios opengl emoji freetype


    【解决方案1】:

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

    • 字符编码

    • 文字整形

    • 换行

    • 字距调整

    • 字形替换

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

    • 等等

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

    现在,如果您确信自己多花几周时间来做这件事是值得的,那么您将不得不解析 /System/Library/Fonts/CGFontCache.plist 文件以找到所需字体的位置。见:Location of the fonts on the iPhone?

    【讨论】:

    • 很好的答案!事实上,我使用 FreeType 是因为我需要将我的字形排列成一个精灵表。所以总而言之,我应该为表情符号尝试核心文本,我可以获得稍后将在 OpenGL 中使用的纹理数据。
    猜你喜欢
    • 2018-03-04
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多