Freetype FT_Load_Glyph:期待 FT_GLYPH_FORMAT_BITMAP,得到 FT_GLYPH_FORMAT_OUTLINE

问题描述 投票:0回答:1

当为 x64 构建并在 Windows 桌面上运行时,这可以按预期工作,但当为 UWP-arm64 构建并在 HoloLens 上运行时,则不能按预期工作:

验证所选面具有特定的预定义位图大小后,我调用 FTC_Manager_LookupSize(...)。 当它返回时,我验证返回的 FT_Size 是否具有预期的属性。 具体来说:FT_Face是Courier New、Regular; FT_Size_Metrics x_ppem、y_ppem 分别为 21、21。我验证 FT_Face 和 FT_Size 对象是否已连接: (((ftsize->face == ftface) && (ftface->size == ftsize))

然后我用该面调用 FT_Load_Glyph(...),load_flags = 0 (FT_LOAD_DEFAULT)。 我预计 FT_GlyphSlot FT_Glyph_Format 为 FT_GLYPH_FORMAT_BITMAP。 在 x64 桌面上,这就是我得到的。 在 UWP-arm64 HoloLens 上,我得到 FT_GLYPH_FORMAT_OUTLINE。 脸部有轮廓和预定义的位图大小;但指定了特定的可用大小并省略 FT_LOAD_NO_SCALE 和 FT_LOAD_NO_BITMAP 标志后,我希望它加载该位图。 我还能做些什么来强制使用 BITMAP 吗?

另一个细节:在 x64 桌面上,我的面部搜索功能找到 MS Gothic、Regular(与 Courier New、Regular),但在这两种情况下,所选的 FT_Face 都可以使用轮廓和特定位图尺寸,因此不会出现对我来说这是一个重要的区别。

感谢您的任何见解。

bitmap format outline glyph freetype2
1个回答
0
投票

已解决:我添加了 FT_LOAD_RENDER 标志,现在我在 UWP-arm64 HoloLens 上获得 FT_GLYPH_FORMAT_BITMAP。 从 FreeType 文档来看,我没想到这是必要的,而且在桌面上似乎也没有必要,但无论如何它解决了我在 HoloLens 上的问题。

© www.soinside.com 2019 - 2024. All rights reserved.