我的解决方案受到了skia的启发.
虽然不能直接访问系统内置的字体文件,但我们仍然有间接的方式:
使用您想要的字体名称创建CGFont,只需调用CGFontCopyTableTags()和CGFontCopyTableForTag()即可访问此CGFont的SFNT表的所有内容.
然后可以使用这些表构建ttf/otf字体数据,将新创建的字体保存到磁盘,稍后可以在FTGL ES中使用它.
不,您无法在iOS设备上访问系统安装的TTF文件.所以你必须嵌入你想要使用的字体.
免责声明:我不是律师,在iOS应用程序中使用Apple提供的系统字体的可接受性是关于解释软件许可证的法律问题,因此您可能需要寻求专业建议.
您希望在您的应用中嵌入Apple提供的字体."嵌入"的定义有点模糊,因此将字体添加到iOS应用程序可能符合也可能不符合版权所有者对"嵌入"的定义.某些类型的房屋定义"嵌入"意味着只是查看所包含字体中的预定内容; 其他意思是查看和编辑该字体的内容.显示在应用程序运行期间更改的内容介于这两种情况之间.
根据Mac OS X Lion 10.7.2 ELUA:
F.字体.根据本许可证的条款和条件,您可以使用Apple软件附带的字体在运行Apple软件时显示和打印内容; 但是,如果相关字体附带的嵌入限制允许,您可能只在内容中嵌入字体.这些嵌入限制可以在字体簿/预览/显示字体信息面板中找到.
如果在iOS应用程序中使用字体确实是"嵌入",您只需要检查您希望在字体簿中使用的特定字体.
在这种情况下,我会找到一种字体或一组字体,我有明确的权限在iOS应用程序中包含字体.我首先要购买各种类型的房屋,以获得明确允许这种用途的许可方案.这可能会变得昂贵,因此另一个方法是寻找具有允许这种用途的许可证的开源字体.或者,对于一组非常有限的字符(例如只有数字),我甚至会考虑绘制自己的字体.
| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |